在 macOS 终端中打开 Sublime Text

567

当我在终端中使用.subl命令时,会返回-bash: .subl: command not found

有人知道如何在macOS的命令行中打开Sublime Text 3吗?


4
你对此有什么进展?我也在使用 ST3 的时候遇到了 subl 的问题。我已经在 /usr/local/bin/subl 创建了符号链接,它指向 /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl。我甚至在我的 ~/.bash_profile 中添加了 export PATH=/usr/local/bin:$PATHexport EDITOR="subl -w",但它仍然无法正常工作,并且我收到相同的错误提示。 - rs77
我遇到了一个奇怪的问题,必须打开subl文件夹才能执行命令。以下是执行的命令:Angelfirenze$ /Applications/Sublime\ Text\ 3.app/Contents/SharedSupport/bin/subl ; exit; logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. [Process completed] Sublime Text 3最终在新会话中打开。我已经安装了Homebrew并按照说明进行了操作。 - Angelfirenze
7
如果您想从命令行打开文件file.txt,可以使用命令open -a "Sublime Text" file.txt更适合。这将使用Sublime Text打开指定的文本文件,而不需要手动打开软件后再打开文件。 - mareoraft
命令不是.subl,而是subl - the Tin Man
修改了.bash_profile文件后,请确保关闭终端并重新打开。这是唯一真正帮助我的方法。我想确保没有人会被卡在这个明显但非常重要的步骤上^^ - SHANNAX
33个回答

777

我最终在我的OSX电脑上使它起作用了。我使用以下步骤使其正常工作:

  1. 从您的ST安装中测试subl

    首先,在终端中导航到您要ST打开的小文件夹,然后输入以下命令:

 /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl .
注意:根据您的Applications目录中应用程序所存储的位置,可能需要将上述命令中的Sublime\ Text.app替换为Sublime\ Text\ 3.appSublime\ Text\ 2.app。上述命令末尾的.打开了您所在的当前工作目录(请确保您所在的目录只包含少量文件!)。
如果没有Sublime Text打开当前的工作目录,则下一组步骤不会起作用。 如果没有发生任何事情或者您从终端获得错误信息,那是因为它找不到Sublime Text应用程序。这意味着您需要检查您键入的内容(拼写等),或者Sublime Text未安装!
  • 检查".bash_profile":

    现在是时候在您的PATH文件夹中创建符号链接了,但在此之前,让我们通过使用nano ~/.bash_profile来检查您的配置文件。以下是与在Sublime Text的命令行上工作有关的行:subl
     export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
     export EDITOR='subl -w'
    

    第一行设置了终端在你的机器上查找二进制文件的位置,我将把我的符号链接存储在/usr/local/bin目录中 - 我猜你可以将其存储在任何地方,只要你已经告诉了终端从哪里查找二进制文件。

    第二行是可选的,它只是将Sublime Text设置为默认编辑器。添加了标志-w,你可以通过访问Sublime Text文档了解更多关于标志的信息:ST4 sublST3 sublST2 subl

    如果你在关闭它后对此文件进行任何编辑,则需要运行命令:

     source ~/.bash_profile 
    

    编译您最新应用的编辑内容。如果在引入文件后出现任何错误,请在进入最后一步之前将其修复。

    创建到Sublime Text的符号链接:

    现在在您选择的路径中(我使用了/usr/local/bin),请输入以下命令:

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

    /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl与您在步骤1中输入并验证的位置完全相同。 /usr/local/bin/subl是您希望符号链接位于的位置——必须是步骤2中PATH位置之一。

    现在,当您导航到要在Sublime Text中打开的文件夹或文件时,您只需输入subl,然后输入文件名或.以打开当前工作目录。


  • 5
    我在使用ST3的时候遇到了一个问题,当我第一次输入subl .的时候,会打开一个名为“untitled”的Sublime编辑器,它不会引用我所在目录中的任何文件。将export EDITOR='subl -w'添加到我的.bash_profile中解决了这个问题。 - Richard Ortega
    6
    这对我起了作用,但首先我必须删除到旧subl文件的符号链接。 - Giles Butler
    4
    直到最后一步都很顺利,但是出现了ln: /usr/subl: Permission denied的提示。有什么想法? - stevenspiel
    3
    我觉得我在这里找到了答案:https://dev59.com/X2kw5IYBdhLWcg3wBV7j。 - stevenspiel
    4
    就像 @mr.musicman 发现的那样,在第三步命令前面可能需要使用 sudo - Sarah Lewis
    显示剩余16条评论

    493

    适用于MAC 10.8及以上版本:

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

    工作过。


    2
    我不得不使用主目录“~”而不是“/usr/bin”,才能使这个命令对我起作用... "sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/bin/subl" - Ben Haley
    2
    对于Sublime2,执行以下命令: sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl - Montaro
    69
    这在10.11中可行:sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl。请参考这里的答案了解原因- http://apple.stackexchange.com/questions/196224/unix-ln-s-command-not-permitted-in-osx-el-capitan-beta3 - Ross
    1
    这对我没有用。我已经设置好了。 ~> source ~/.bash_profile ~> echo $EDITOR subl -w ~> subl . ~> which subl /Users/vishlpa4/bin/subl ~> ls -al ~/bin/subl lrwxr-xr-x 1 root staff 62 Oct 8 18:22 /Users/vishlpa4/bin/subl -> /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl... 但是当我执行“sublime filename”时,仍然会弹出无标题文件的Sublime。 - explorer
    4
    2022年更新:在macOS Monterey 12.2.1上运行得非常好 - 谢谢! - Ermiya Eskandary
    显示剩余14条评论

    215

    假设:

    • 您已经安装了Homebrew。
    • /usr/local/bin在您的$PATH中。
    • 您正在使用Yosemite或El Capitan。

    经过David Rawson测试,MacOS Sierra 10.12.5也可以工作,Alexander K证实了MacOS Sierra 10.12.6也可以。

    在终端中运行以下脚本以创建特定的符号链接。

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

    那么:

    subl .
    

    按下 回车 键,Sublime Text 将立即打开。


    4
    谢谢。在我的 macOS Sierra Version: 10.12 (16A323) 上运行良好。 - Subhajit
    4
    可以确认这也适用于 macOS Sierra 10.12.6。谢谢! - Alexander Kucheryuk
    3
    可在 High Sierra OSX 10.13.3 上运行。 - chichilatte
    2
    它告诉我: ln: /usr/local/bin/subl: 文件已存在 我需要做什么? - Reihan_amn
    2
    @Reihan_amn - 很晚才回复,我想你已经解决了,但只是作为参考。似乎有一个与该名称相关联的现有链接。您可以使用rm /usr/local/bin/subl,然后执行符号链接。 - Kent Aguilar
    显示剩余8条评论

    92

    我在Mac OSX Mavericks上使用oh-my-zsh,符号链接对我不起作用,所以我在我的.zshrc文件中添加了别名:

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

    打开一个新的终端,然后你就可以开始使用了,输入 subl


    同样的问题,但是针对Bash。 - merqlove
    3
    我也是,这对我起作用了,但我需要将其更改为Sublime文本2并使用以下字符串:"Sublime\ Text\ 2.app/" - Joshua Soileau
    @emrah 我正在使用ST3。 - Thomas Bindzus
    @ThomasBindzus 我后来想通了。谢谢。 - atilkan
    你所需要做的就是在.zshrc文件中取消注释export PATH=$HOME/bin:/usr/local/bin:$PATH,然后运行source ~/.zshrc。 - talsibony
    显示剩余2条评论

    70

    这对我很有用(我正在使用OS X Mavericks)

    首先,创建一个符号链接:

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

    现在您可以使用以下命令打开Sublime:

    subl "/a/path/to/the/directory/you/want/to/open"
    

    1
    我不得不使用sudo rm /usr/bin/subl命令才能在OSX 10.9上使其工作,谢谢! - dnlcrl
    1
    ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl - organillero
    为什么我们需要引号?对我来说,使用引号可以工作,但是不使用引号就无法工作? - vgrinko
    11
    ln:/usr/bin/subl:操作不允许。 - Ken Ratanachai S.
    20
    请使用/usr/local/bin/subl而不是/usr/bin/subl - Josh Foskett

    66

    我将使用的这个非常简单。

    open -a "sublime text" [file]
    

    这可以立即打开Sublime文本编辑器。你可以使用可选参数指定要打开的文件,例如在当前目录中打开"myfile.txt"。


    5
    如果您想更快地访问,可以创建一个别名。输入 nano .bash_profile 并粘贴以下内容:alias subl="open -a 'sublime text'"。 - mbokil
    1
    谢谢!这是唯一对我有效的解决方案。如果要在现有窗口中打开新标签页(而不是新窗口),请参见https://dev59.com/gWkw5IYBdhLWcg3wV5ID。 - Dennis Golomazov
    我认为这是所有选项中最干净的。谢谢! - grooveplex
    1
    你如何修改这个程序,以便创建一个实际不存在的文件?我知道如何使用open -a sublimetext打开已经存在的文件,但如果我要创建一个新的文本文件,我应该修改打开脚本的什么内容? - esaruoho
    我不明白为什么我们要创建符号链接,而这个解决方案明显更好。 - arunwithasmile
    完美无瑕地运作 - undefined

    60

    您可以在终端中创建一个新的别名:

    nano ~/.bash_profile
    

    复制此行并粘贴到编辑器中:

    alias subl='open -a "Sublime Text"'
    

    按下control + x,然后按y,最后按enter以保存并关闭它。

    关闭所有终端窗口,然后重新打开它。

    就这样,您现在可以使用 subl filename subl . 了。

    关于zsh的更新:

    自macOS 10.15 Catalina以来,默认shell已更改为zsh。

    nano ~/.zshrc
    
    其他步骤保持不变。

    对我来说没起作用 zsh: 找不到命令:subl - Jyoti Duhan
    10
    这是最简单直接的方法。 - Victor Valente
    我认为有解决这个问题的方法,但是按照给定的方式,当传递给_subl_别名的参数是不存在的文件时,这个解决方案将失败。我发现像@Artemiy建议的那样,将PATH扩展到包括sublime /path目录更可靠。 - meyerson
    1
    别名 subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl $*" - Mihai
    3
    在将别名添加到~/.bash_profile后,执行source ~/.bash_profile - Deepak Garg
    显示剩余2条评论

    28

    有一种简单的方法可以做到这一点。 只需要几个步骤,您就不需要太多使用命令行。 如果您是命令行新手,则可以使用此方法。

    第一步:找到bin文件夹以放置subl可执行文件

    1. 打开终端
    2. 输入cd .. ---------------------这应该会返回到上一个目录
    3. 输入ls ------------------------以查看目录中的文件列表
    4. 输入cd .. ---------------------直到进入一个包含usr的文件夹
    5. 输入open usr ---------------这应该会打开Finder,您应该能看到一些文件夹
    6. 打开bin文件夹 -------这是您将复制Sublime可执行文件的位置。

    第二步:找到可执行文件

    1. 打开Finder
    2. 在“文件”下打开一个新的Finder窗口(CMD + N)
    3. 导航到应用程序文件夹
    4. 找到Sublime Text并右键单击以获得下拉菜单
    5. 点击“显示包内容”
    6. 打开Content/SharedSupport/bin
    7. 复制subl文件
    8. 将其粘贴到我们之前找到的usr文件夹中的bin文件夹中
    9. 在终端中输入subl --------------这应该会打开Sublime Text

    请确保文件被复制,而不是快捷方式。 如果出现问题,请查看usr/bin文件夹的图标,并将subl粘贴到文件夹中的空白区域中。 它的图标图像上不应有快捷方式箭头。


    在尝试了其他答案之后,这个是唯一对我有效的。Mac OS X Yosemite 10.10.1。 - tmthyjames
    这对我在Mac OS X El Capitan上没有起作用 - 我无法复制文件。但是,Chutipong Roobklom的答案确实有效。 - CodeBiker
    从El Capitan及以上版本开始,您需要将subl文件粘贴到/usr/local/bin文件夹中。因此,请按照第2到第6步,在终端中打开它并执行命令sudo cp subl /usr/local/bin。这是由于新的系统完整性保护功能。 - PeeJee

    21

    试试这个。

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

    使用这个。将其软链接到 /usr/local/bin 中。 - guice

    17

    Sublime Text 3文档中的“Symlink”命令无法正常工作,因为在Mac OS X El Capitan或更高版本中,Home位置中没有“~/bin/”目录。

    因此,我们需要将符号链接放在/usr/local/bin上,因为这个路径在大多数情况下会出现在我们的$PATH变量中。

    所以,下面的命令应该就可以解决问题了:

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

    如果您正确地创建符号链接,您将能够这样运行Sublime Text 3:subl . (.表示当前目录)


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