【问题标题】:command "subl" from terminal don't work来自终端的命令“subl”不起作用
【发布时间】:2012-08-07 00:52:56
【问题描述】:

我是 Mac 新手(Mountain Lion)并尝试为终端设置“subl”命令,如下所述:

第一个任务是创建一个指向 subl 的符号链接。假设你已经放置 应用程序文件夹中的 Sublime Text 2,并且您有一个 ~/bin 路径中的目录,您可以运行:

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

但它不起作用。我现在在我的用户下有一个文件夹 /bin/ ,这个文件夹包括一个别名。但是当我在终端内输入subl --help 时,我收到错误-bash: subl: command not found

有人可以帮帮我吗?

KR & thx,费边

【问题讨论】:

  • 您是否将~/bin 作为$PATH 变量中的目录之一?如果没有,那么您将收到错误消息。许多人将$HOME/bin~/bin 作为$PATH 上的目录之一。

标签: terminal sublimetext2 osx-mountain-lion


【解决方案1】:

将目录更改为:

/usr/local/bin

然后运行它:

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

【讨论】:

  • 我不得不使用 Sublime Text 3 的修改版本:.../Application/Sublime Text.app/...
  • 不错的答案。但是,我需要以超级用户身份运行此命令。即 sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" subl
  • 感谢您指出我必须位于与当前所在的目录不同的目录中。我是一个相对新手,可能不会想到这一点。你帮了很多忙。
  • 链接已创建,但不可运行。 ls 命令显示它在那里,但是在命令行上输入 s 并尝试自动完成不起作用,并且运行它失败。
【解决方案2】:

我现在找到了解决方案 - RVM 出现问题。解决办法是输入命令

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

进入终端。

【讨论】:

  • 为什么 rvm 会导致这个问题?你能解释一下吗?
  • @nilbus 不,我不能,对不起。我还是个编程初学者
  • 我下次登录后,这个解决方案停止工作。
  • 它为我解决了这个问题,虽然我不知道为什么:将 Sublime 符号链接添加到 PATH 中的其他文件夹没有这种效果。
  • 我在 RVM 上遇到了这个问题,这对我来说非常有效。在发现这一点之前,我正在扯掉我的头发。谢谢!
【解决方案3】:

Sublime Text 3 发生在我身上。

这个符号链接对我有用,我只需要将符号链接目标更改为 /usr/local/bin/subl

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

解决方案来源Paul Byrne answer here

【讨论】:

  • 我收到权限被拒绝错误。所以你通常需要一个 sudo 。
【解决方案4】:

使用Homebrew 安装 Sublime 通常会自动创建正确的符号链接。

brew install Caskroom/cask/sublime-text 

然后可以像这样访问 Subl:

# Open Sublime at current directory
subl .

【讨论】:

  • 我最近又试了一次,似乎命令已更改为subl
【解决方案5】:

为这个问题选择的解决方案是将 subl 符号链接放在 ~/.rvm/bin 文件夹中,这绝对不是通用解决方案,因为该目录是他安装的程序的一部分。

虽然路径中的任何目录都可以,但最常见的解决方案是在主文件夹中创建一个 bin 目录,通过将 export PATH=$PATH:~/bin 放入 .bash_profile 中将其设置在路径中,然后运行链接命令,如这条新路径的原始问题。

过去通常将 subl 符号链接放在 /usr/local/bin 中,但从 10.2 版开始,此目录在 OSX 中不再存在,并且 /usr/local 目录不再位于默认路径中。

【讨论】:

    【解决方案6】:

    为 MAC OSX Mavericks 解决了问题!

    我在这个 GitHubGist 上找到了这个答案: https://gist.github.com/artero/1236170

    从 Mac OS X 终端启动 Sublime Text 2

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

    我发现这部分阐明了许多 StackOverflow 响应仅暗示但未明确解释的内容:

    现在让我们检查一下是否一切顺利。输入这个:

    打开 ~/.bash_profile

    (在某些情况下,配置文件名为 ~/.profile)

    您应该会在文件顶部看到以以下开头的一行:export PATH=

    这包含当您在终端中键入命令时将查找可执行二进制文件的所有目录。由于我们在 /usr/local/bin 目录中创建了一个名为 subl 的符号链接,因此让我们检查该目录是否列在同一行。

    如果是,那就完美了。我们继续吧。如果没有,只需像这样添加并保存文件:

    导出 PATH=/usr/local/bin:(...)

    注意:此示例中的“(...)”表示将在同一行列出并用冒号分隔的其他文件夹。

    如果您的 bash_profile 中尚未设置 PATH,您可以键入:

    导出 PATH=/usr/local/bin:$PATH

    如果您必须将 /usr/local/bin 添加到 PATH,请在继续之前运行以下命令:

    来源 ~/.bash_profile

    这将使用新添加的目录重新加载您的 .bash_profile。

    测试

    打开终端窗口并运行:

    崇高的文件名(用实际文件名替换“文件名”)

    希望这也有助于其他人澄清。目前(2014 年秋季)使用 Mac OSX Mavericks。干杯

    【讨论】:

      【解决方案7】:

      如果您只是希望 命令使用 sublime text 打开文件,并且您不想将它用作所有命令的默认编辑器,为什么不直接为您的 @987654321 添加一个别名@?

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

      这将适用于打开文件和目录

      【讨论】:

        【解决方案8】:

        在装有 OSX Yosemite 10.10.5 和 sublime text 3 Build 3083 的 MAC 上遇到同样的问题!

        将 git 配置为满足上述要求可以完美地使用:

        git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -n -w"
        

        并测试它是否适用:

        git config -e
        

        【讨论】:

          【解决方案9】:

          它适用于 Mac OSX 10.8.2,echo $PATH 显示正确链接的 subl 符号链接,如本文所述。 Sublime Text 2 页面上的其他建议似乎不适用于新 Mac

          【讨论】:

            【解决方案10】:

            我发现 subl 有一个别名。键入 alias 以查看所有已定义的别名。找到源并注释掉,或使用unalias subl 取消设置。

            【讨论】:

              【解决方案11】:

              对于 .bashrc 或 .zshrc

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

              【讨论】:

                【解决方案12】:

                Catalina 的自动沙盒功能似乎破坏了 subl 命令。

                使用以下别名作为替代

                alias subl="open $1 -b com.sublimetext.3"
                

                【讨论】:

                  【解决方案13】:

                  $ subl . 对我不起作用之后,

                  我试过$ bundle exec subl .,它成功了。

                  解决方案:输入$ bundle exec subl .,它应该可以工作。(显然,省略 $)

                  【讨论】:

                    猜你喜欢
                    • 2014-09-28
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-06-26
                    • 2023-03-07
                    • 2021-06-06
                    • 2015-03-14
                    • 2018-09-01
                    相关资源
                    最近更新 更多