58

I want to apologize in advance that this is a newbie question! I've spent the last 2 hours trying to find a solution.

I have two problems (I'm sure related).

Background:

This is what my $PATH looks like:

/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194/bin:/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/Sponsi/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/Sponsi/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

Problem #1

I am trying to use the command-line command "subl" to launch Sublime Text 2 on OSX.

I entered the following command: "ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

It only halfway worked - when I enter "subl" I get "Command not found". But when I re-enter the command above it says "Already exists."

I searched online and found a (somewhat) fix. I added the following to my .bashrc:

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

Using the command "subl" does work but only temporarily. If I exit terminal or switch to another directory it stops working (bringing me into problem #2, see below.)

Problem # 2:

When I try to pull up a file under another directory using the command "subl" I get "-bash: ./bin/subl: No such file or directory" I confirmed the file I want to edit does exist.

BTW, I am following the Ruby tutorial found @ http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

Thank you so much for your time!

4

14 回答 14

156

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

$ 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 的应用程序的名称。

于 2013-11-07T17:30:13.477 回答
94

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

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/.rvm/bin/subl
于 2012-07-02T01:43:04.660 回答
34

对于 El Captain 或更高版本的操作系统:

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

对于崇高的文字 3

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

对于崇高的文字 2

sudo rm /usr/local/bin/subl
sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
于 2017-01-23T14:05:10.727 回答
25

我把我的卡在 /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

于 2012-08-13T01:51:38.993 回答
13

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

$ sudo rm -rf /usr/local/bin/subl
$ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
$ subl .
于 2018-07-11T01:23:38.707 回答
7

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

/usr/bin
/usr/local/bin

他们都在路上。对我有用的是摆脱命令行上运行的引号

sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl
于 2014-02-04T21:59:41.983 回答
3

如果您愿意,也可以创建新别名

别名 subl="/Applications/Sublime\Text.app/Contents/SharedSupport/bin/subl"

于 2017-02-19T18:06:49.350 回答
3
$ alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"

$ subl . 这行得通!:D

于 2018-01-15T06:45:44.307 回答
2

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

cd ~/
ls -l

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

mkdir bin

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

subl --help

希望能解决这个问题

于 2013-03-07T03:08:01.950 回答
2

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

export PATH="$HOME/bin:$PATH

请注意~is there 而不是.您的示例中的 the?表示您的~主目录,这是您的.bashrc文件所在的位置。点表示终端窗口的当前目录。

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

于 2012-06-05T06:21:19.793 回答
1

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

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

于 2014-11-22T03:52:19.190 回答
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,一切都应该正常工作。

于 2016-04-07T14:52:22.467 回答
0

在 linux sublime 3 中,在终端粘贴

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

然后

subl3 [filename]
于 2017-06-10T07:08:31.373 回答
0

我首先检查了which subl 返回的任何内容。这意味着必须将 subl 的路径添加到所需的 PATH 变量中。

所以添加到 subl 的 PATH 变量路径有帮助

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

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

如果可行,请通过将以下命令添加到您的 .bash_profile 来永久添加路径

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

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

于 2020-02-13T15:56:43.697 回答