【问题标题】:Subl command not working - command not foundSubl 命令不起作用 - 找不到命令
【发布时间】:2014-09-28 22:27:14
【问题描述】:

我很难进行此设置。我修复了我的.bash_profile,并使用来自 Sublime 网站的以下命令创建了符号链接:

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

然而,当我输入该命令时,我得到:

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

看来我的终端正在寻找文件的错误位置?为什么它试图指向我的主目录上的 bin 文件夹?

【问题讨论】:

  • 确保~/bin 目录存在。 ln 不会自动创建它。
  • 感谢您的评论,我很感激。所以我创建了 bin 目录,它包含“subl”。但是代码仍然无法识别。
  • Applications Documents Library Music Public dotfiles Desktop Downloads Movies Pictures bin ~ :> cd bin bin :> ls subl bin :> subl --help -bash: subl: command not found bin :>
  • 在 ln -s "...." 之后,避免使用引号。这样做:ln -s /App......

标签: macos sublimetext2


【解决方案1】:

这对我有用。

首先,确保您在主文件夹中:

cd ~

第 1 步:使用以下命令行删除 /Users/Ram/bin/subl 目录:

rm -rf /Users/Ram/bin/subl

第 2 步:使用以下命令行再次创建此文件夹:

mkdir /Users/Ram/bin/subl

第 3 步:使用以下命令创建一个指向 sublime 的符号链接:

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

(在此命令覆盖权限问题之前使用sudo

第 4 步:现在您可以测试 subl 是否有效:

subl test.py

这应该会打开 sublime 并创建新的 test.py 文件。

【讨论】:

    【解决方案2】:

    您可以将以下内容添加到 shell 配置文件 .bash_profile 或 .zshrc(Apple 将 bash 替换为 zsh 作为 macOS Catalina 中的默认 shell):

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

    这些是编辑.zshrc 并保存更改的步骤(按ESC:wq! 保存并退出):

    $ cd ~
    $ vim .zshrc
    $ source .zshrc
    

    要验证它是否有效,请尝试以下操作,它应该会打开 Sublime Text。

    $ subl .zshrc
    

    【讨论】:

      【解决方案3】:

      虽然 sarbottam 的回答是正确的方法,但如果你像我一样懒惰,并且使用 subl 来做一个 subl .,你可以为你的 ~/. bash_profile

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

      然后打开一个新的终端窗口或运行 .bash_profile

      【讨论】:

        【解决方案4】:

        我刚刚在新 iMac 上下载了 MacOS Catalina 10.15 版,并按照 Sublime 文档发现以下带有双引号的内容对我不起作用:

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

        我做了:

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

        它奏效了。

        注意:这是在我的 iMac - MacOS Catalina 10.15 上运行的代码,我直接从我的机器上复制/粘贴了工作行。如果您发现其他代码有效,请添加另一个答案并指定您的机器配置。或下面的简单评论。不要编辑代码部分,特别是为工作线添加双引号。谢谢!!

        【讨论】:

        • 人们:请不要编辑此答案的代码部分,因为这是在我的 iMac - MacOS Catalina 10.15 上工作的代码,我直接从那里复制/粘贴。如果您发现其他代码有效,请添加另一个答案并指定您的机器配置。
        【解决方案5】:

        我使用sudo 尝试了几种组合,还包括或排除了/Sublime\ Text.app 包中的转义空格。

        创建所需符号链接的方法是:

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

        我不必使用sudo 或修改$PATH

        作为参考,我使用的是 Mac OS Mojave 10.14。

        echo $PATH 当前(未经我任何修改)显示以下内容:

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

        您可以通过在运行上面的ln 命令后立即输入which subl 来判断这是否有效。如果你没有得到一行输出显示 Bash 在哪里找到了你的 subl 命令,那么你就没有它。

        【讨论】:

          【解决方案6】:

          我正在记录这一点,因为它可以在我的机器上运行,并且可能会为那些在运行 sarbbottam 的答案中建议的命令时看到“文件已存在”的人解决问题。我不确定我可以完全解释它,所以我可能会使用错误的术语。

          当我复制/粘贴 sarbbottam 的命令时,我的终端报告该文件已经存在。我尝试将这个问题的几个 Stack Overflow 答案复制/粘贴到我的终端中,所以我的 /usr/local/bin 目录中有名为 sublsublime 的符号链接。当我使用ls -a 列出该目录中的所有文件时,我可以看到该文件。我试图在文本编辑器中打开subl 目录,它说该文件不存在。

          我删除了/usr/local/bin 中的subl 符号链接,运行了命令,它成功了。

          我想我不小心为 Sublime Text 2 或其他东西做了一个,只是想我会覆盖最后一个,但事实并非如此。

          【讨论】:

            【解决方案7】:

            我的类似问题只是通过省略引号来解决。因此,如果您正在使用:

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

            我做了:

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

            【讨论】:

            • 可以确认这对我也有效。我先尝试了前者,但没有奏效。后者虽然做到了。谢谢!
            【解决方案8】:

            如果你使用的是 Sublime Text 2,试试这个:

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

            或者,如果您的路径位于 /usr/bin/ 而不是 /usr/local/bin:

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

            【讨论】:

              【解决方案9】:

              "Launch Sublime Text from the command line on OSX" 为我工作。我使用 Sublime Text 3,只需将下面的命令复制并粘贴到命令行。我在根级别做到了这一点

              $ cd ~
              
              • 如果您使用的是 Sublime Text 3 复制,请将其粘贴到命令行:

                // Sublime Text 3
                $ ln -sv "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
                
              • 如果您使用的是 Sublime Text 2 复制,请将其粘贴到命令行:

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

              现在测试一下它是否有效:

              1. 从命令行打开一个新文件:

                $  subl test.rb  // it should open new file test.rb in Sublime Text
                
              2. 打开一个项目文件夹:

                $ subl dir/myProject // opens a new folder inside Sublime
                
              3. 启动 Sublime 应用:

                $ subl // launches Sublime
                

              要打开 Sublime 帮助以获取更详细的选项,请使用:

              $ subl -h // Sublime help
              

              【讨论】:

                【解决方案10】:

                这解决了我在优胜美地战斗一段时间后的 Sublime 终端 (subl) 命令问题:

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

                这里是the source

                【讨论】:

                • 如果没有 su,我也无法正常工作。这是有原因的吗?
                • 刚试过这个(在优胜美地),但没有运气。甚至重新启动终端并检查我的路径..
                • 我收到这个错误:sh-3.2# rm /usr/local/bin/sublrm: /usr/local/bin/subl: No such file or directorysh-3.2# ln -s "/Applications/SublimeText.app/Contents/SharedSupport/bin/subl" /usr/local/bin/sublln: /usr/local/bin/subl: No such file or directory
                • 为我解决的步骤:1) sudo su 2) cd /usr 3) mkdir local 4) cd local 5) mkdir bin 6) cd ~/ 7) 运行符号链接
                • 为什么我们需要使用 sudo su?
                【解决方案11】:

                /usr/local/bin 而不是~/bin 中创建符号链接,并确保/usr/local/binPATH 中。

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

                如果您没有找到/usr/local/bin/,则将以下行添加到您的.bashrc.zshrc:

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

                【讨论】:

                • 所以我已经尝试过了,您可以在 /usr/local/bin 中看到“subl”,但该命令仍然失败。它现在存在于两个地方,用户名/bin 和 /usr/local/bin '~ :> cd /usr/local/bin bin [master] :> ls npm sub oid2name subl pg_archivecleanup Vacuumdb pg_basebackup Vacuumlo' 我删除了一些里面的内容不超过字符数限制。
                • 你能做一个which subl 并粘贴输出吗?
                • 非常感谢您帮助我解决了这个问题!
                • 我只是使用查找器找到 subl 文件并将其放在我的 usr/local/bin 中,当我在查找器中打开应用程序的内容时,我发现 subl 文件丢失了!我一定是搞砸了,所以我手动删除、重新安装并移动它。
                • 对于 Sublime Text 2:ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/.
                【解决方案12】:

                有多个符号链接指向同一个目标可能存在问题。我删除了我的链接“subl”,我的链接“sublime”仍然有效。

                【讨论】:

                  【解决方案13】:

                  在我的最后 subl 工作正常,但 git 无法访问它。并显示这些错误

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

                  对于 Mac OS X,在 [core] 下的 ~/.gitconfig 文件中,我不得不把这段代码放在我的最后解决问题。

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

                  【讨论】:

                    猜你喜欢
                    • 2013-03-17
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-08-07
                    • 1970-01-01
                    • 2017-02-03
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多