终端中的“subl”命令无法运行

41

我是一个Mac新手(Mountain Lion),并尝试为终端设置“subl”命令,就像这里描述的那样:

第一步是创建一个到subl的符号链接。假设您将Sublime Text 2放置在应用程序文件夹中,并且您的路径中有一个~/bin目录,您可以运行以下命令:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

但是它不起作用。我现在有一个位于我的用户下的/bin/文件夹,其中包含一个别名。但是当我在终端中输入subl --help时,我会收到错误提示-bash: subl: command not found

有人能帮帮我吗?

谢谢,Fabian


1
您的 $PATH 变量中是否包含 ~/bin 目录?如果没有,则会出现错误。许多人在 $PATH 中的目录之一是 $HOME/bin~/bin - Jonathan Leffler
13个回答

87

切换目录到:

/usr/local/bin

那么请运行此命令:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" subl

6
我得使用修改过的 Sublime Text 3 版本:.../Application/Sublime Text.app/... - Fares
1
不错的答案。但是,我需要以超级用户身份运行此命令。即sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" subl - aidanmelen
谢谢您指出我需要进入不同的目录。我是一个相对新手,可能无法自行解决。您的帮助非常有效。 - allardbrain
链接已创建,但无法运行。ls 命令显示它存在,但在命令行上键入 s 并尝试自动完成不起作用,并且运行失败。 - Igor Yagolnitser

29

现在我已经找到解决方案了 - RVM出了问题。解决方案是输入以下命令:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/.rvm/bin/subl

输入到终端中。


为什么rvm会导致这个问题?你能解释一下吗? - Edward Anderson
@nilbus 不好意思,我还是个编程初学者,做不到。 - Fawyd
结果发现,在我的下一次登录后,这个解决方案不再有效。 - Edward Anderson
它解决了我的问题,尽管我不知道为什么:将Sublime符号链接添加到PATH中的其他文件夹中并没有产生这种效果。 - kasia
我曾经遇到过RVM的问题,这个方法对我非常有效。在发现这个方法之前,我都快抓狂了。谢谢! - Matt
人们真的会在使用RVM和Sublime时遇到问题吗?这没有意义,你只需要将其添加到你的路径中即可。如果你真的想要链接它,请使用~/bin/代替。 - ndnenkov

28

我用 Sublime Text 3 遇到了同样的问题。

这个符号链接对我有用,唯一需要做的就是将符号链接的目标更改为 /usr/local/bin/subl

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

解决方案来源:这里是Paul Byrne的答案


我遇到了一个权限被拒绝的错误。所以通常需要使用sudo。 - akshaynagpal

9
使用Homebrew安装Sublime通常会自动创建正确的符号链接。
brew install Caskroom/cask/sublime-text 

然后可以访问Subl:

# Open Sublime at current directory
subl .

最近我又尝试了一下,发现命令已经改为 subl - Betsy Dupuis

3

解决方法:适用于MAC OSX Mavericks!

我在GitHubGist上找到了这个答案:https://gist.github.com/artero/1236170

如何从Mac OS X终端启动Sublime Text 2

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime

以下是我发现的,许多StackOverflow回答只是暗示而没有明确解释的部分:

现在让我们进行检查,看看是否一切都会顺利运行。输入以下内容:

open ~/.bash_profile

(在某些情况下,配置文件的名称为~/.profile)

你应该在文件的顶部看到一行以export PATH=开头的行。

当你在终端中键入命令时,这包含了所有将被查找可执行二进制文件的目录。由于我们在/usr/local/bin目录中创建了一个名为sublime的符号链接,因此让我们检查是否在同一行上列出了该目录。

如果有,那就太好了。让我们继续。如果没有,只需像这样添加它并保存文件:

export PATH=/usr/local/bin:(...)

注意:本例中的“(...)”表示将在同一行上列出的其他文件夹,并用冒号分隔。

如果您的bash_profile中还没有设置PATH,则可以键入:

export PATH=/usr/local/bin:$PATH

如果您必须将/usr/local/bin添加到PATH中,请在继续之前运行以下命令:

source ~/.bash_profile

这将重新加载您的.bash_profile,并加入新添加的目录。

测试

打开一个终端窗口并运行:

sublime filename (将“filename”替换为实际文件名)

希望这也能为其他人提供帮助。目前(FALL 2014)使用的是Mac OSX Mavericks。干杯!


3
这个问题的解决方案是将subl符号链接放在~/.rvm/bin文件夹中,这绝对不是通用解决方案,因为此目录是他安装的某个程序的一部分。
尽管路径中的任何目录都可以工作,但最常见的解决方案是在主文件夹中创建一个bin目录,在.bash_profile中设置它的路径,并使用这个新路径运行链接命令,就像原来的问题所示。
过去,常常将subl符号链接放在/usr/local/bin中,但是自OSX 10.2版本以来,该目录不再存在, /usr/local目录也不再在默认路径中。

3
如果你只是想要使用 sublime text 打开文件的命令,并且不想将其用作所有命令的默认编辑器,为什么不在你的 ~/.bash-profile 中添加一个别名呢?
alias subl="open -a 'Sublime Text'"

那可以用来打开文件和目录。

2

我在MAC上使用OSX Yosemite 10.10.5和sublime text 3 Build 3083遇到了同样的问题!

使用以下配置使git与上述要求完美配合:

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -n -w"

测试是否成功:

git config -e

1

它适用于Mac OSX 10.8.2,echo $PATH 显示subl符号链接正确链接,如此帖子所述。Sublime Text 2页面上的其他建议似乎不适用于新的Mac。


0

对于 .bashrc 或 .zshrc 文件

alias subl="open . -a /Applications/Sublime\ Text.app"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接