使用mac系统自带的open命令或者软件自带命令行工具subl,都可以通过mac终端打开sublime
1、系统自带的open命令
open命令可以从shell打开文件,-a选项指定特定的应用
$ open -a /Applications/Sublime\ Text.app test.txt
这样操作比较繁琐,可以通过alias命令设置别名为sublime
$ sublime='open -a /Applications/Sublime\ Text.app'
$ sublime test.txt
alias 命令的作用时间只能维持到 shell 会话结束,为了保证下次打开shell的时候上述别名依然有效,可以将alias语句写入~/.bash_profile,再通过source ~/.bash_profile 激活即可。
参考:profile、bash_profile、bashrc文件的作用与区别 - IT笔录
2、Sublime提供的命令行工具subl
Sublime自带命令行工具路径为/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
通过ln命令为上述subl工具创建一个快捷方式,并将此快捷方式放到/usr/local/bin路径下,此路径是包含在$PATH中
$ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
$ ls -l /usr/local/bin/subl //查看软链接状态
$ lrwxr-xr-x 1 root admin 68 5 16 21:20 subl -> /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl
$ subl test.txt
PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux/Mac在这些目录下进行搜寻编译链接。通过echo可以看出/usr/local/bin是$PATH的默认路径。
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/Applications/Wireshark.app/Contents/MacOS
建立软链接为什么使用/usr/local/bin,不使用/usr/bin?
-
/usr/bin是一个“神圣的”的地方,通常用来存放由包管理系统「package management systems」维护的静态二进制文件,subl显然不在此列。
-
相较于其它基础的BSD binaries,例如 find, man, make,subl显然还不够稳定。如果后续升级修改了Sublime的名字或路径,或者删除了此应用,你必须手动修改/删除它的快捷方式。
-bash: subl: command not found
在使用过程中曾出现了上述问题,经过排查确认是建立软连接的时候,对subl的绝对路径加了如下双引号导致的
sudo ln -s “/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl” /usr/local/bin/subl
解决办法:去掉绝对路径外的双引号(“”)
网友评论