Wybierz domyślną aplikację do otwierania plików bez rozszerzenia?

27

Czy można ustawić domyślną aplikację do otwierania plików bez rozszerzenia? Ja nie odnosząc się do ukrytych plików z rozszerzeniami, ale te całkowicie pozbawione rozszerzenie - na przykład README, CHANGELOG, mbox, itd.

„Otwórz za pomocą” => „Zmień wszystko” w tych plikach nie działa, zwracając błąd pokazany poniżej:

Otwórz za pomocą / Zmień wszystko - Niepowodzenie

Idealnie byłoby, gdyby system próbował otworzyć wszystkie takie pliki w TextMate. Wiem, że mogę przeciągać pliki na ikony Docka, aby otwierać je w określonych aplikacjach, ale szukam bardziej płynnego rozwiązania niż to (szczególnie, że mam automatyczne ukrywanie Docka, co sprawia, że ​​jest o wiele bardziej kłopotliwe).

Znam wtyczkę QLStephen QuickLook, która może włączyć QuickLook dla niektórych z tych plików, ale wolałbym rozwiązanie z wyborem / kopiowaniem / edycją.

Austin
źródło

Odpowiedzi:

12

Możesz dodać domyślną aplikację dla public.plain-text w ~ / Library / Preferences / com.apple.LaunchServices.plist.

defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.apple.textedit;}' '{LSHandlerContentType=public.unix-executable;LSHandlerRoleAll=com.apple.textedit;}'

Uruchom ponownie, aby zastosować zmiany (wylogowanie i ponowne zalogowanie nie wystarczy).

Dodałem to do pliku konfiguracyjnego duti :

com.apple.textedit public.plain-text all
com.macromates.textmate public.unix-executable all
Lri
źródło
5
To wygląda na dobre, więcej szczegółów na temat tego, co dzieje się tutaj na najwyższym poziomie, byłoby miło. Wprowadzenie, co dzieje się w kroku 1 itd.
MrDaniel
4

Możesz to zrobić za pomocą Magic Launch. Po zainstalowaniu możesz utworzyć reguły do ​​uruchomienia na podstawie różnych kryteriów. Musisz utworzyć regułę dla aplikacji tekstowych, w których rozszerzenie jest puste. Możesz ustawić bardziej złożoną logikę, jeśli jej potrzebujesz.

http://michelf.com/software/magic-launch/

barryj
źródło
Masz rację - musiałem stworzyć niestandardową regułę do obsługi plików z pustymi rozszerzeniami ... ale wygląda na to, że zadziałała - dzięki! Jedynym minusem jest to, że jest to 13 USD. Nie mam problemu z płaceniem za dobre aplikacje, ale to trochę strome, biorąc pod uwagę, że szukam tylko tej jednej funkcji.
Austin
0

Spójrz na RCDefaultApp (darmowy).

RCDefaultApp to panel preferencji Mac OS X 10.2 lub nowszy, który pozwala użytkownikowi ustawić domyślną aplikację używaną do różnych schematów URL, rozszerzeń plików, typów plików, typów MIME i jednolitych identyfikatorów typów (lub UTI; tylko MacOS 10.4).

Hagelin
źródło
1
Podoba mi się, że jest darmowy, ale nie ma sposobu, aby ustawić domyślną aplikację dla plików bez rozszerzenia. Używanie typów MIME może nieco to przybliżyć, ale następnie zmienia domyślną aplikację wszystkich plików tekstowych, nie tylko tych bez rozszerzenia. W każdym razie dziękuję za sugestię - być może pomoże to komuś innemu.
Austin
0

Nieco później pytanie „Jak uniknąć otwierania plików bez typu w terminalu” jest nieco stare. Jednak:

Powyższe rozwiązania obejmują zmianę istniejących zasad, które mogą mieć niepożądane skutki uboczne. Uważam, że najłatwiej jest wykorzystać istniejące reguły dla plików bez czcionek i zmienić uprawnienia do plików, aby uzyskać pożądany rezultat.

W szczególności: wyłącz bit pliku wykonywalnego w pliku, ponieważ właśnie to powoduje, że usługa plików ma otwierać się przy użyciu terminala z „chmod -x nazwa pliku”, gdzie nazwa pliku to… nazwa pliku.

Można to do pewnego stopnia zautomatyzować (ostrożnie): w moim przypadku mam wiele plików README na komputerze. Mogę użyć „znajdź”, aby znaleźć wszystkie pliki „README”. A następnie użyj „awk”, aby skonstruować polecenie usunięcia bitu wykonywalnego na wszystkich z nich w następujący sposób:

find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }'

wpisz to w terminal, jeśli chcesz sprawdzić, które pliki zostaną zmienione: Dane wyjściowe będą składały się z listy dla każdego znalezionego pliku README, wyglądającego mniej więcej tak:

chmod -x //Users/jimpsmith/things/README

Aby zmienić wszystkie te uprawnienia, wykonaj wszystkie te wiersze, pobierając opłaty za bash w następujący sposób:

find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }' | bash

Uważaj tylko na zbyt swobodne używanie symboli wieloznacznych i stwierdzenie, że przypadkowo usunąłeś bit wykonywalny z niektórych plików wykonywalnych, które błędnie pasują.


Łatwiejszym sposobem byłoby po prostu biec

find /$HOME -iname 'README' -exec chmod -x '{}' \;`

lub (aby zobaczyć, co by się stało)

find /$HOME -iname 'README' -exec echo chmod -x '{}' \;`
JamesConnolly
źródło
1
Jakoś nie rozumiem, w jaki sposób rozwiązuje to problem wskazany w pytaniu. README, ChangeLog itp. Zazwyczaj nie mają ustawionego bitu x, aby zacząć. Problem polega na tym, że OS X polega na sufiksach do identyfikacji aplikacji, w której można otworzyć plik, a te pliki nie mają sufiksu.
nohillside