简体   繁体   中英

Subl command not working - command not found

I'm having difficulty getting this set up. I fixed my .bash_profile , and created the symlink using the following command from the Sublime website:

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

Yet, when I input that command I get:

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

It appears my terminal is looking at the wrong place for the file? Why is it trying to point to a bin folder on my home directory?

Create the symlink in /usr/local/bin instead of ~/bin and make sure that /usr/local/bin in in PATH .

$ ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/.
$ echo $PATH

If you don't find /usr/local/bin/ , then add the following lines to your .bashrc or .zshrc:

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

This solved my Sublime terminal ( subl ) command issue after battling for a while on Yosemite:

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

Here is the source .

" Launch Sublime Text from the command line on OSX " worked for me. I use Sublime Text 3 and only had to copy and paste the commands below to the command-line. I did this at the root level

$ cd ~
  • If you're using Sublime Text 3 copy then paste this to the command line:

     // Sublime Text 3 $ ln -sv "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
  • If you're using Sublime Text 2 copy then paste this to the command line:

     // Sublime Text 2 $ ln -sv "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

Now test it out to see if it works:

  1. Open a new file from the command line:

     $ subl test.rb // it should open new file test.rb in Sublime Text
  2. Open a project folder:

     $ subl dir/myProject // opens a new folder inside Sublime
  3. Launch Sublime app:

     $ subl // launches Sublime

To open Sublime Help for more detailed options use:

$ subl -h // Sublime help

If you are using Sublime Text 2 try this:

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

or, if your path is in /usr/bin/ instead /usr/local/bin:

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

My similar problem was solved simply by omitting the quotes. So if you're working with:

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

I instead did:

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

You could just add the following to the shell config file .bash_profile or .zshrc (Apple replaced bash with zsh as the default shell in macOS Catalina):

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

These are the steps to edit .zshrc and save the changes (press ESC and :wq! to save and exit):

$ cd ~
$ vim .zshrc
$ source .zshrc

To verify that it works, try the following and it should open up Sublime Text.

$ subl .zshrc

While sarbottam's answer is the proper way to do it, if you're lazy like me, and use subl to just do an subl . , you can add an alias to your ~/.bash_profile

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

and either open a new terminal window or run the .bash_profile

At my end subl was working fine but git was unable to access it. And was displaying these errors

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.

For Mac OS X in the file ~/.gitconfig under [core] I had to put this code to solve the issue on my end.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

I tried several combinations using sudo and also including or excluding leading / and escaping spaces in the Sublime\\ Text.app package.

What worked to create the desired symlink was:

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

I did not have to use sudo or modify $PATH .

For reference, I am on Mac OS Mojave 10.14.

echo $PATH currently (and without any modification by me) shows the following:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

You can tell if this worked by typing which subl immediately after running the ln command above. If you don't get a line of output showing you where Bash found your subl command then you don't have it.

I'm documenting this because it worked on my machine and might fix the problem for people who see "file already exists` when they run the command suggested in sarbbottam's answer. I'm not sure I can fully explain it so I may use the wrong terms.

When I copy/pasted sarbbottam's command, my terminal reported that the file already existed. I tried copy/pasting several Stack Overflow answers to this problem into my terminal, so I had symlinks called subl and sublime in my /usr/local/bin directory. I could see the file when I listed all files in that directory with ls -a . I tried to open the subl directory in a text editor, and it said that the file didn't exist.

I deleted the subl symlink in /usr/local/bin , ran the command, and it worked.

I think I accidentally made one for Sublime Text 2 or something, and just figured I'd be overwriting the last one which was not the case.

There might be an issue with having multiple symbolic links to the same target. I removed my link "subl" and my link "sublime" still works.

I just downloaded MacOS Catalina version10.15 on a new iMac and following the Sublime documentation found that the following with double quote does not work for me:

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

I instead did:

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

and it worked.

ATTENTION: this is the code worked on my iMac - MacOS Catalina 10.15, and I copy/pasted the working line directly from my machine. If you find other code working, please add another answer and specify your machine configuration. Or simple comment below. DO NOT EDIT THE CODE SECTION, ESPECIALLY ADDING THE DOUBLE QUOTE FOR THE WORKING LINE. THANKS!!

This is what worked for me.

First, make sure you are in home folder:

cd ~

Step 1 : Remove the /Users/Ram/bin/subl directory by using following command line:

rm -rf /Users/Ram/bin/subl

Step 2 : Create this folder again using following command line:

mkdir /Users/Ram/bin/subl

STEP 3 : use the following command to create a symbolic link to sublime:

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

(using sudo before this command overrides permission issues)

Step 4 : Now you can test if subl works:

subl test.py

This should open up sublime with new test.py file created.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM