Subl 命令不起作用 - 找不到命令
Posted
技术标签:
【中文标题】Subl 命令不起作用 - 找不到命令【英文标题】:Subl command not working - command not found 【发布时间】: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......
【参考方案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
目录中有名为 subl
和 sublime
的符号链接。当我使用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
现在测试一下它是否有效:
从命令行打开一个新文件:
$ subl test.rb // it should open new file test.rb in Sublime Text
打开一个项目文件夹:
$ subl dir/myProject // opens a new folder inside Sublime
启动 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/subl
rm: /usr/local/bin/subl: No such file or directory
sh-3.2# ln -s "/Applications/Sublime
Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
ln: /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/bin
在PATH
中。
$ 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
【讨论】:
以上是关于Subl 命令不起作用 - 找不到命令的主要内容,如果未能解决你的问题,请参考以下文章
Docker 命令在 Windows 上的 Git Bash 中不起作用(执行:“com.docker.cli”:在 %PATH% 中找不到可执行文件)
命令行应用程序中的 asp.net 4.0 到 excel 2010 不起作用 - 即使在驱动程序安装后也找不到驱动程序
pip install numpy 不起作用:“找不到匹配的发行版”