我使用 Mac OS Lion,我想在我的 .bash_profile 中声明文件扩展名和打开它们的默认应用程序。
例如,我想将所有.txt文件关联到TextMate,以便当我从shell打开文件时,它会自动启动TextMate并打开我的文件。
答案1
你没有在你的 中设置此关联.bash_profile
。你的 shell 不知道用哪个 OS X 应用程序打开文件——它是发射服务处理此事。
全局更改文件类型与某些应用程序的关联最简单的方法是安装RC默认应用并设置一切系统偏好设置。
理论上,您也可以修改~/Library/Preferences/com.apple.LaunchServices.plist
自定义关联的文件,但我不建议这样做。
我想将所有 .txt 文件关联到 TextMate,这样当我从 shell 打开文件时,它会自动启动 TextMate 并打开我的文件
转到文本文件,右键单击它并选择打开用…。在这里,选择文本伴侣,然后点击全部更改...。
现在,只要您在 shell 中,就可以输入:
open foo.txt
这将打开 TextMate 并显示您的文本文件。1这同样适用于您可能通过 RCDefaultApp 或获取信息…Finder 中的对话框。这背后的魔力在于,它将open
调用推迟到启动服务,然后由启动服务决定要使用的应用程序。2
1:其实对于 TextMate 来说,以下内容就足够了:mate foo.txt
2:您也可以手动选择一个应用程序,例如open -a Xcode foo.txt
。阅读man open
更多。
答案2
我用杜蒂为此。它基本上只是修改,~/Library/Preferences/com.apple.LaunchServices.plist
但不需要您知道文件扩展名的 UTI 或重新启动以应用更改。这是我的配置文件的一部分。
# .txt, plain text files without an extension
com.apple.TextEdit public.plain-text all
# executable scripts
com.macromates.textmate public.unix-executable all
com.apple.Preview .jpg all
com.macromates.textmate .rb all
net.sourceforge.skim-app.skim .pdf all
org.videolan.vlc .mkv all
org.videolan.vlc .mp4 all
UTI 声明中包含的文件扩展名会自动转换为 UTI,因此.jpg
也适用于.jpeg
。