马春杰杰 Exit Reader Mode

macOS在终端增加sublime快捷键打开各种文件

使用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
/Users/mcj/opt/anaconda3/bin:/Users/mcj/opt/anaconda3/condabin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

建立软链接为什么使用/usr/local/bin,不使用/usr/bin?

  1. /usr/bin是一个“神圣的”的地方,通常用来存放由包管理系统「package management systems」维护的静态二进制文件,subl显然不在此列。
  2. 相较于其它基础的BSD binaries,例如 find, man, makesubl显然还不够稳定。如果后续升级修改了Sublime的名字或路径,或者删除了此应用,你必须手动修改/删除它的快捷方式。

-bash: subl: command not found

在使用过程中曾出现了上述问题,经过排查确认是建立软连接的时候,对subl的绝对路径加了如下双引号导致的

sudo ln -s “/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl” /usr/local/bin/subl

解决办法:去掉绝对路径外的双引号(""

 

本文最后更新于2023年1月31日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!