在终端中使用subl命令的问题:“找不到命令”& “没有相应的文件和目录”

时间:2012-06-05 06:03:57

标签: bash terminal sublimetext2

我想提前道歉,这是一个新手问题!我花了最近2个小时试图找到解决方案。

我有两个问题(我确定相关)。

背景:

这就是我的$ PATH的样子:

/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194/bin:/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/Sponsi/ .rvm /红宝石/红宝石1.9.3-P194 /斌:/Users/Sponsi/.rvm/bin:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:在/ usr / local / bin目录:在/ usr /本地/ GIT中/ bin中:在/ usr / X11 / bin中

问题#1

我正在尝试使用命令行命令“subl”在OSX上启动Sublime Text 2.

我输入了以下命令: “ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

只有一半工作 - 当我输入“subl”时,我得到“Command not found”。但是当我重新输入上面的命令时,它说“已经存在。”

我在网上搜索并找到了(有点)修复。我在.bashrc中添加了以下内容:

echo 'export PATH="./bin:$PATH"' >> ~/.bashrc 
source ~/.bashrc

使用命令“subl”确实有效但只是暂时的。如果我退出终端或切换到另一个目录,它将停止工作(让我进入问题#2,见下文。)

问题#2:

当我尝试使用命令“subl”在另一个目录下提取文件时,我得到“-bash:./ bin / subl:没有这样的文件或目录”我确认我要编辑的文件确实存在。< / p>

BTW,我正在关注@ http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

发现的Ruby教程

非常感谢您的时间!

14 个答案:

答案 0 :(得分:132)

在终端中运行每个命令(按此顺序):

$ sudo rm -rf /usr/local/bin/subl
$ sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin
$ subl .

这应该有效!

注意:首先你应该检查你的sublime应用程序是否在Applications文件夹中,它的名字是Sublime Text 2,如果没有,你应该在第二个命令中更改名称并输入sublime的名称应用

答案 1 :(得分:94)

如果您使用的是RVM,请执行以下操作:

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

答案 2 :(得分:24)

我把它放在/ usr / bin

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

或Sublime 3或更高版本

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

它已经在$ PATH

答案 3 :(得分:19)

对于El Captain或更高版本的OS:

El Capitan 中,您不能写入/ usr / bin,但写入/ usr / local / bin是可以的。默认情况下,/ usr / local / bin也应该在您的路径变量中。

Sublime Text 3

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

Sublime Text 2

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

答案 4 :(得分:7)

我在最近配置的新Mac上遇到了同样的问题。我在oh-my-zsh和sublime文本之前安装了RVM,我遇到了同样的问题。我在路径上尝试了不同的位置

/usr/bin
/usr/local/bin

所有人都在路上。对我有用的是删除命令行上的引号

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

答案 5 :(得分:7)

如果您使用的是 Sublime Text 3 ,则需要调整isanjosgon答案中的命令:

A 2018-07-11T01:22:45.628Z
B 2018-07-11T01:37:45.628Z
C 2018-07-11T01:52:45.628Z
C 2018-07-11T02:07:45.628Z
D 2018-07-11T02:22:45.628Z
E 2018-07-11T02:37:45.628Z
E 2018-07-11T02:52:45.628Z
F 2018-07-11T03:07:45.628Z

答案 6 :(得分:2)

编辑您的~/.bashrc文件以在其末尾包含此行:

export PATH="$HOME/bin:$PATH

请注意~代替您示例中的.~表示您的主目录,即.bashrc文件所在的目录。圆点表示终端窗口的当前目录。

完成更改后,关闭终端窗口并重新打开。然后应该在PATH上提供subl

答案 7 :(得分:2)

关于您的第一个问题,可能是您的主目录下没有设置bin目录(即〜/ bin)?要检查此项,请键入以下内容:

cd ~/
ls -l

如果没有bin目录,请键入以下内容:

mkdir bin

创建目录后,重新键入以下内容:

subl --help

希望能解决问题

答案 8 :(得分:2)

如果您想要

,也可以创建新的别名
  

alias subl =&#34; / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl"

答案 9 :(得分:1)

在更新Sublime Text之后,接受的答案中的路径略有变化。

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

答案 10 :(得分:0)

当你更改目录或重新打开终端然后PATH无法工作的原因是.bashrc是一个非登录的交互式文件。

只需在终端使用此行:

echo 'export PATH=$PATH:~/bin' >> ~/.bash_profile

可能会解决问题,因为每次登录时都会加载.bash_profile。

如果你没有.bash_profile, 在使用上述命令之前,在终端中输入:

cd ~
touch .bash_profile

然后使用正式命令。

我不会碰到usr / local / bin,因为它是系统级文件夹。听说最近在OS X El Capitan,Apple取得了一些许可限制。 所以只需将克隆放在/ bin文件夹下的主目录中,然后在.bash_profile中添加PATH,那么一切都应该正常工作。

答案 11 :(得分:0)

在linux sublime 3中,在终端粘贴

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

然后

subl3 [filename]

答案 12 :(得分:0)

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

$ subl . 这有效! :d

答案 13 :(得分:0)

我首先检查了which subl 什么也没返回。 这意味着必须将subl的路径添加到所需的PATH变量中。

因此,将subl的PATH变量路径添加到

PATH=$PATH:/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/

您可能首先想找到您subl的正确路径,并将其添加到PATH变量中

如果可行,请通过在.bash_profle中添加以下命令来永久添加路径

export PATH = $ PATH:/ Applications / Sublime \ Text \ 2.app/Contents/SharedSupport/bin /

注意:subl的路径在您的系统中可能会有所不同。