.bash_profile 中的默认文件扩展名

.bash_profile 中的默认文件扩展名

我使用 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

相关内容