在macOS中从终端打开Sublime Text


417

在终端上,当我使用 .subl

它返回 -bash: .subl: command not found

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


3
你最近怎么样了?我也有sublST3的问题。我创建符号链接的/usr/local/bin/subl指向/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl。我甚至已经添加了export PATH=/usr/local/bin:$PATHexport EDITOR="subl -w"我的~/.bash_profile-但它仍然无法正常工作,我也得到了同样的错误。
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

4
如果要file.txt从命令行使用Sublime Text 打开文件,则该命令open -a "Sublime Text" file.txt可能更适合。
mareoraft

该命令不是.subl,而是subl
锡人

Answers:


627

我终于可以在OSX盒子上使用它了。我使用以下步骤使其正常工作:

  1. subl通过ST安装进行测试:

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

    /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl .
    

    注意:您可能需要Sublime\ Text.app在上面的命令中替换为Sublime\ Text\ 3.appSublime\ Text\ 2.app取决于应用程序在Applications目录中的存储位置。将.在上述命令结束时打开你位于当前工作目录(再次确保你在只包含几个文件的目录!)。

    如果您没有在打开当前工作目录时看到Sublime Text,则接下来的步骤将不起作用。如果什么也没有发生,或者您从Terminal遇到错误,那是因为它找不到Sublime Text应用程序。这意味着您将必须检查键入的内容(拼写等),或者未安装Sublime Text!

  2. 检查“ .bash_profile”:

    现在是时候在PATH文件夹BUT中创建符号链接了,在此之前,让我们使用来检查您的配置文件nano ~/.bash_profile。以下是与subl在Sublime Text的命令行上进行工作有关的以下行:

    export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
    export EDITOR='subl -w'
    

    第一行设置了您希望Terminal在计算机上查找二进制文件的位置,我将把符号链接存储在/usr/local/bin目录中-我猜您可以将其存储在任何位置,前提是您已通知Terminal在哪里寻找二进制文件。

    第二行是OPTIONAL,仅将Sublime Text设置为默认编辑器。该标志-w已添加,您可以通过转到Sublime Text文档来找到有关标志的更多信息:ST3 sublST2 subl

    如果您在关闭该文件后确实对其进行了任何编辑,则需要运行以下命令:

    source ~/.bash_profile 
    

    来编译您新应用的修改。如果在采购文件后发现任何错误,请先进行修复,然后再进行最后一步。

  3. 创建一个符号链接到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是你想要的符号链接位于的位置-必须是您的一个PATH从上述步骤2的位置。

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


3
我曾与ST3一个问题,当我第一次在打字subl .,我会得到一个名为崇高编辑器untitled,并没有引用我在目录中的任何文件,否则export EDITOR='subl -w'.bash_profile解决了这个问题。
理查德·奥尔特加

4
这对我有用,但是我必须先删除到旧subl文件的符号链接。
吉尔斯·巴特勒2013年

3
直到最后一步,它的工作都很漂亮。我有ln: /usr/subl: Permission denied想法吗?
stevenspiel 2013年

2
我想我找到了答案在这里stackoverflow.com/questions/10196449/...
stevenspiel

1
正如@ mr.musicman发现的那样,您可能需要sudo在步骤3中的命令前面使用。–
Sarah Lewis

311

对于MAC 10.8+:

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

工作了。


1
我必须使用主目录〜而不是/ usr / bin来使它对我有用...“ sudo ln -s / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl〜/ bin / subl”
Ben Haley

这是可行的,但是并没有打开我运行Subl的折叠位置
Jitendra Vyas

1
对于Sublime2sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl
蒙塔罗2015年

工作在OS X 10.10.4
库奇

59
@Tinple可以在10.11中运行,sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl 请参见此处的答案-apple.stackexchange.com/questions/196224/…–
Ross

152

假设:

  • 您已经安装了Homebrew。
  • / usr / local / bin在$ PATH中。
  • 您正在优胜美地或El Capitain。

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 .

点击后Return,它应立即打开Sublime Text。


3
@ChutipongRoobklom谢谢。它对我有效macOS Sierra Version: 10.12 (16A323)
Subhajit

在macOS Sierra 10.12.5上工作。谢谢
David Rawson

3
也可以确认也可以在macOS Sierra 10.12.6上运行。谢谢!
亚历山大·K.17年

我的崇高文本路径是不同的,我猜是因为我正在使用崇高2 ln -s / Applications / Sublime \ Text \ 2.app/Contents/SharedSupport/bin/subl / usr / local / bin / subl
talsibony

1
适用于High Sierra OSX 10.13.3
chichilatte,

66

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

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

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

现在您可以打开

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:操作不允许
肯Ratanachai S.

16
@KenRatanachaiS。使用/usr/local/bin/subl代替/usr/bin/subl
乔什·佛斯基特

65

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

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

打开一个新的终端,您应该一切顺利,然后键入subl


此处相同,但适用于Bash。
merqlove

2
同样在这里,这对我有用,但我需要使用以下字符串将其更改为Sublime文本2:“ Sublime \ Text \ 2.app/”
Joshua Soileau

我猜这是针对ST 2的。ST 3带有CLI,但是我还不能运行它。
atilkan 2015年

@emrah我正在使用ST3
Thomas Bindzus

@ThomasBindzus我后来才知道。谢谢。
atilkan 2015年

43

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

open -a "sublime text" [file]

这立即打开了崇高的文字。您可以指定要打开的文件作为可选参数,例如,在当前目录中打开“ myfile.txt”。


3
如果访问速度更快,则可以创建一个别名。键入nano .bash_profile并粘贴:alias subl =“ open -a'sublime text'”
mbokil 2015年

1
谢谢!这是唯一对我有用的解决方案。为了使在现有的窗口(不是在一个新的)新标签中打开,看到stackoverflow.com/questions/9961350/...
丹尼斯Golomazov

我认为这是最干净的选择。谢谢!
凹槽复数

您如何修改它,以便它将创建一个实际上不存在的文件?我知道如何使用open -a sublimetext打开一个存在的文件,但是如果我要创建一个新的文本文件,应该将打开脚本修改为什么?
esaruoho

28

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

步骤1:查找bin文件以将subl可执行文件放入

  1. 打开终端
  2. 输入cd ..---------------------这应该返回目录
  3. 输入ls------------------------以查看目录中的文件列表
  4. 输入cd ..---------------------,直到得到包含usr的文件夹
  5. 输入open usr---------------这将打开查找器,您应该看到一些文件夹
  6. 打开bin文件夹-------这是您复制sublime可执行文件的地方。

步骤2:查找可执行文件

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

确保将其复制并且不是快捷方式。如果确实有问题,请查看usr / bin文件夹作为图标,然后将subl粘贴到该文件夹中的空白区域。图标图像中不应包含快捷键箭头。


在尝试了其他答案之后,这是唯一为我工作的答案。Mac OS X优胜美地10.10.1。
tmthyjames

在Mac OS X El Capitan上,这对我不起作用-无法复制到文件上。但是,朱提蓬·鲁布克洛姆(Zhutipong Roobklom)的回答确实奏效。
CodeBiker '16

从El Capitan开始,您需要将subl文件粘贴到/ usr / local / bin文件夹中。因此,按照步骤2到第6点,在终端中打开它并执行命令sudo cp subl / usr / local / bin。这是由于新的系统完整性保护功能。
PeeJee

18

尝试这个。

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

^使用这个。软链接到/ usr / * local * / bin。
guice18年

16

Sublime Text 3文档中的Symlink命令无法使用,因为~/bin/Mac OS X El Capitan或更高版本上的Home位置中没有目录。

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

因此,以下命令应该可以解决问题:

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

正确创建符号链接后,就可以像下面这样运行Sublime Text 3 :(subl . 。表示当前目录)


12

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

nano ~/.bash_profile

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

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

control+ x,然后按y,然后enter保存并关闭。

关闭所有终端窗口,然后再次将其打开。

就是这样,您现在可以使用subl filenamesubl .


11

请注意不要写成/usr/bin而是写成/usr/local/bin。第一个是用于将二进制文件自己写入系统的应用程序,而最新的是用于制作我们自己的系统范围二进制文件的特定用法(在进行符号链接时就是这种情况)。

/usr/local/bin被读取后/usr/bin,因此也是一个不错的地方,覆盖任何默认的应用程序。

考虑到这一点,正确的符号链接将是:

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


10

在运行Sublime Text 2的OS X Mavericks中,以下对我有用。

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

在查找器中找到文件并将其拖放到终端窗口中非常方便,因此您可以确定路径是正确的,我不是一个庞大的终端用户,因此这对我来说比较舒适。然后您可以转到路径的开头并开始添加其他部分,例如速记UNIX命令。希望这可以帮助


9

有用 !!!!在MacOS Sierra 10.12.2上为我

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

并在终端中找到它 subl


9

关闭Sublime。运行此命令。它将卸载它。您不会失去偏好。然后再次运行。它将自动绑定subl

brew install Caskroom/cask/sublime-text

2
终于做到了,非常感谢您发布此信息!在最初的symlink由于某种原因中断后的几个月里,我一直试图让ST3从命令行运行。无论如何,谢谢!
Angelfirenze

谢谢,这行得通,但是只运行两次是不够的,必须先sudo rm -rf在Applications文件夹中的sublime目录中删除现有的sublime 。
cardamom

7

将其添加到ur .bashrc或.zshrc是一个简单的解决方案。

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

6

除非确实需要,否则您不应污染/ usr / bin目录。对于那些不受分发程序包管理器管理的二进制文件,我总是使用/ usr / local / bin。为什么?因为如果软件包管理器得到更新,它将始终替换/ usr / bin中的文件。

所以我要做的是

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


5

如果已设置要从命令行调用的subl,则打开当前目录的正确命令是:

subl .

OS X命令行 ”是有关如何确保所有设置均已设置的链接。


它会返回ln: /Users/###/bin/subl: No such file or directory
user1405049

您是否看过我答案底部的链接?尝试执行以下命令ln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" ~/bin/subl
danmanstx

@danmanstx我已经在/usr/local/bin目录中创建了符号链接,但它仍然给我错误。我注意到我的ST3软件包已安装在/Applications/Sublime Text.app/...该目录中,并且在创建符号链接时有所区别。但是错误仍然存​​在-我认为这与我的.bash_profile文件有关。
rs77

在我的情况下,链接指向ln -s /Volumes/Macintosh\ HD/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
NicolásKittsteiner

5

您可以添加一个别名

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

然后,您应该可以打开文件夹

subl <path>

3

对于想要从终端在Mac上使用Sublime打开文件的任何人

open 'path/file.txt' -a '/Applications/Sublime Text.app'

3

这是为了使其能够用作ALIAS,而不是符号链接!

这将允许您在终端中运行其他命令,而不会中断subl会话。在此处使用许多符号链接答案(ln -s),使终端过程在使用Sublime文本时会忍受。如果要分离,请在Bash配置文件中创建一个别名,如下所示:

  1. subl通过ST安装进行测试:

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

    /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl .
    

    注意:您可能需要Sublime\ Text.app在上面的命令中替换为Sublime\ Text\ 3.appSublime\ Text\ 2.app取决于应用程序在Applications目录中的存储位置。将.在上述命令结束时打开你位于当前工作目录(再次确保你在只包含几个文件的目录!)。

    如果您没有在打开当前工作目录时看到Sublime Text,则接下来的步骤将不起作用。如果什么也没有发生,或者您从Terminal遇到错误,那是因为它找不到Sublime Text应用程序。这意味着您将必须检查键入的内容(拼写等),或者未安装Sublime Text!

  2. 检查并更新“ .bash_profile”:

    现在,在您的Bash配置文件中添加别名。通过打开vim ~/.bash_profile。以下是与subl在Sublime Text的命令行上进行工作有关的以下行:

    ## For Sublime Text 3 alias
    alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
    ## For Sublime Text global editor preference **Optional
    export EDITOR='subl -w'
    

    我建议始终在此处使用注释您的代码##。第二行是OPTIONAL,仅将Sublime Text设置为默认编辑器。该标志-w已添加,您可以通过转到Sublime Text文档来找到有关标志的更多信息:ST3 sublST2 subl

    如果您在关闭该文件后确实对其进行了任何编辑,则需要source在当前会话中对此文件进行编辑,或者关闭终端(选项卡)并打开一个新文件。您可以source通过运行以下命令source ~/.bash_profile解决所有错误,然后再执行最后一个步骤,以使用此文件。


2

我要补充一点,如果要从Sublime Text 2升级,请先进入/ usr / bin并删除旧的subl,然后再按照上述相同的说明进行操作。值得升级。



2

我正在使用Mac Airbook打开终端并输入

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

然后输入简单的subl和文件名

 subl index.py

参见下文,将其与/ usr / * local * / bin一起使用。尽量不要将自定义软链接添加到系统目录中。
guice18年

0

我使用的是Oh-My-Zshell,前面提到的别名对我不起作用,因此我编写了一个简单的bash函数,该函数允许您通过sublime在编辑器中打开当前文件夹来从命令行打开Sublime 。具有附加功能,可指定从中打开编辑器的文件。

# Open Sublime from current folder or specified folder
sublime(){
  /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ./$1
}

在终端中打开当前文件夹的用法:

$ sublime

打开特定文件夹的用法:

$ sublime path/to/the/file/to/open

0

总结了完成它的不同方法:

  1. 从终端打开崇高文本
open /Applications/Sublime\ Text.app/
  1. 要使用崇高文本在当前路径中打开特定文件(或提供您需要打开的文件的路径)
open -a /Applications/Sublime\ Text.app/ myFileToOpen.txt
  1. 通过引入一个名为'sublime'的新别名来简化您的命令并使用它

    一个。打开bash_profile:

    nano ~/.bash_profile

    b。复制此行以创建别名,然后保存并重新启动终端

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

    C。用法:apple.txt将以崇高的文本打开(必要时提供文件路径)

    sublime apple.txt


-1

我在Mac上,这对我有用:

open /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.