在OSX上无法使用subl命令为ST3工作

时间:2014-06-17 11:02:20

标签: macos git sublimetext3

我正在尝试将Subl命令用于我的Mac OSX Mavericks。我的root应用程序文件夹中有ST3。

当我运行下面的行时,我也用sudo运行它并得到相同的消息。

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

在终端中我收到以下错误

ln: /Users/username/bin/subl: No such file or directory

我仔细检查了它是否有效

subl --help

但是收到以下错误

-bash: subl: command not found

我正在努力让这个工作,所以我可以使用它与Git打开文件与升级https://help.github.com/articles/associating-text-editors-with-git#using-sublime-text-as-your-editor

我的.bash_profile如下所示

export PATH=/usr/local/git/bin:$PATH
export PATH="/usr/local/bin:$PATH"
export EDITOR='subl -w'

if [ -f ~/.git-completion.bash ]; then
    source ~/.git-completion.bash
fi

任何人都可以建议如何解决这个问题, 感谢

2 个答案:

答案 0 :(得分:2)

最有可能的问题是您首先没有/Users/username/bin目录,因此尝试创建符号链接的ln命令无效。除此之外,即使~/bin 确实存在,它也不属于您的PATH,因此永远不会找到subl命令。

为了让您更轻松,只需在/usr/local/bin中创建符号链接即可。它(希望)已经存在,并且已经存在于您的PATH中。跑吧

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

你应该全力以赴。


回复您的评论:此处有2个命令 - ln,其中会创建symlink,而export只会创建environment variable({{1}是一个特殊的环境变量,它包含在Terminal中输入内容时搜索命令的目录列表。

创建符号链接时,在创建链接之前,需要存在整个目录树。因此,虽然PATH/Users已经存在,但/Users/username没有,因此/Users/username/bin命令失败,无论是否使用了ln。要在您的主目录(也称为sudo)中创建bin目录,您首先需要运行~,然后使用您的第一个{{1}创建符号链接}命令(没有mkdir ~/bin的那个)。接下来,您需要通过将ln中的前两行替换为

,将sudo添加到~/bin环境变量中
PATH

但是,由于~/.bash_profile已经在export PATH=~/bin:/usr/local/bin:/usr/local/git/bin:$PATH 中,因此最简单的解决方案是在那里创建符号链接到/usr/local/bin,而不是创建新的PATH目录,符号链接,编辑subl,然后重新启动shell。

答案 1 :(得分:0)

我也有这个要求。我使用alias而不是那些符号链接方法。这很容易,这是如何。

步骤1:打开〜/ .bash_profile,在其中添加以下行,然后保存并关闭它。

alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'

第2步:执行source以使alias设置生效。

source ~/.bash_profile

现在您可以使用命令subl跟随文件或目录路径打开它们,享受吧!