Після редагування ~/Library/Preferences/com.apple.LaunchServices.plist
в XML ви можете редагувати текстовий редактор:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Потім додайте такі записи до LSHandlers
масиву:
<dict>
<key>LSHandlerContentType</key>
<string>com.adobe.pdf</string>
<key>LSHandlerRoleAll</key>
<string>net.sourceforge.skim-app.skim</string>
</dict>
<dict>
<key>LSHandlerContentTag</key>
<string>mkv</string>
<key>LSHandlerContentTagClass</key>
<string>public.filename-extension</string>
<key>LSHandlerRoleAll</key>
<string>org.videolan.vlc</string>
</dict>
Ви можете використовувати mdls
для перегляду UTI типів файлів і щось на зразок osascript -e 'id of app "AppName"'
перегляду ідентифікаторів пакетів програм.
Ви можете застосувати зміни до com.apple.LaunchServices.plist
перезавантаження. Вихід із системи та повернення в систему недостатньо.
ПРИМІТКА : duti
більше не знаходиться в активному розвитку, і її поціновувачі позначені як "непідтримувані". З 2012 року проект не спостерігав значного прогресу, окрім оновлень конфігурації. Він перемістився з Sourceforge до Github. Цю відповідь було оновлено, щоб включити нові посилання.
Я також використовую дуті, хоча. Я зберегла такий файл (приблизно зі 100 рядками) як ~/.duti
:
org.gnu.Emacs public.plain-text all # .txt, .text, plain text files without an extension
org.gnu.Emacs public.unix-executable all # executable scripts
com.SequentialX.Sequential .jpg all
org.videolan.vlc .mkv all
У мене є агент запуску, який duti ~/.duti
автоматично запускається при ~/.duti
зміні.
Зазвичай ви можете використовувати розширення імен файлів (як .jpg
) замість UTI (подібних public.jpg
) для вказівки типів файлів. duti
перетворює розширення в UTI, які також застосовуються до інших розширень (наприклад .jpeg
). Для деяких розширень, таких як .mkv
і .tex
, UTI залежить від того, яка програма спочатку зареєструвала розширення.
Остання версія з duti
тільки включає в себе вихідний код, але 1.5.0 також включає в себе установку.
brew install duti
для встановленняduti