Anda dapat mengedit ~/Library/Preferences/com.apple.LaunchServices.plist
dalam editor teks setelah mengubahnya menjadi XML:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Kemudian tambahkan entri seperti ini ke LSHandlers
array:
<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>
Anda dapat menggunakan mdls
untuk melihat UTI dari jenis file dan sesuatu seperti osascript -e 'id of app "AppName"'
untuk melihat bundel pengidentifikasi aplikasi.
Anda dapat menerapkan perubahan com.apple.LaunchServices.plist
dengan memulai ulang. Keluar dan kembali tidak cukup.
CATATAN : duti
tidak lagi dalam pengembangan aktif dan telah diberi label oleh pengelolanya sebagai "tidak didukung". Proyek ini belum melihat kemajuan besar sejak 2012 selain dari pembaruan konfigurasi. Itu telah pindah dari Sourceforge ke Github. Jawaban ini telah diperbarui untuk menyertakan tautan baru.
Saya juga menggunakan duti . Saya telah menyimpan file seperti ini (dengan sekitar 100 baris) sebagai ~/.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
Saya memiliki agen launchd yang berjalan duti ~/.duti
secara otomatis ketika ~/.duti
diubah.
Anda biasanya dapat menggunakan ekstensi nama file (seperti .jpg
) daripada UTI (suka public.jpg
) untuk menentukan jenis file. duti
mengonversi ekstensi menjadi ISK yang juga berlaku untuk ekstensi lain (seperti .jpeg
). Untuk beberapa ekstensi seperti .mkv
dan .tex
, UTI tergantung pada aplikasi apa yang mendaftarkan ekstensi terlebih dahulu.
The Versi terbaru dari duti
hanya mencakup kode sumber, tetapi 1.5.0 juga mencakup installer.
brew install duti
untuk menginstalduti
Berikut adalah agen launchd untuk duti yang akan melakukan trik:
Jelas ganti
joshgummersall
dengan nama pengguna Anda sendiri. Saya menempatkan file ini di~/Library/LaunchAgents/duti.plist
,chmmod
d ke 644 dan berlari:sumber
Jawaban singkat: Asosiasi aplikasi file disimpan dalam garpu sumber daya file , dan Apple menyediakan dua utilitas ( Rez dan DeRez ) yang memungkinkan manipulasi garpu sumber daya., Tetapi ini bukan untuk orang yang lemah hati.
Untuk lebih jelasnya, pertanyaan ini dijawab dengan sangat teliti di Super User:
sumber