使用命令行在Sublime Text 3中打开文件夹

53

我想在Sublime Text 3中打开一个目录。

我可以使用subl命令从命令行启动Sublime。

帮助文本显示如下:

Sublime Text build 3059

Usage: subl [arguments] [files]         edit the given files
   or: subl [arguments] [directories]   open the given directories
   or: subl [arguments] -               edit stdin

Arguments:
  --project <project>: Load the given project
  --command <command>: Run the given command
  -n or --new-window:  Open a new window
  -a or --add:         Add folders to the current window
  -w or --wait:        Wait for the files to be closed before returning
  -b or --background:  Don't activate the application
  -s or --stay:        Keep the application activated after closing the file
  -h or --help:        Show help (this message) and exit
  -v or --version:     Show version and exit

--wait is implied if reading from stdin. Use --stay to not switch back
to the terminal when a file is closed (only relevant if waiting for a file).

Filenames may be given a :line or :line:column suffix to open at a specific
location.

因此,我应该能够使用以下命令打开一个目录: subl ./folder_name 但是我无法成功执行。Sublime打开了(但只有一个空白的新文档),而且我在侧边栏中也看不到这个文件夹。
我做错了吗...
顺便说一下,我正在使用带有“Oh my fish”附加组件的fish shell(我还添加了sublime附加组件)...

假设sublime指向可执行文件,则翻译为:sublime /path/to/folder/file - Sudip Bhandari
10个回答

89

仅限于Mac或Linux操作系统

最佳且最安全的方法是创建一个符号链接,将Sublime可执行文件(subl)链接到您$PATH中已有的文件夹中(例如/usr/local/bin/)。如果您这样做,每次Sublime更新时都不需要更新此设置...

对于运行BASH环境的用户(即大多数人):

ln -s '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' /usr/local/bin/subl
如果那不管用,就在你的主目录下创建一个bin文件夹(如果不存在的话),将其添加到你的PATH变量中,并创建一个到该文件的软链接。
mkdir $HOME/bin
export PATH=$HOME/bin:$PATH
ln -s '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' $HOME/bin/subl
在您开始正式使用之前,我建议您先查看帮助文本,它解释了如何使用它。
 subl -h
subl my_folder_name/filename.txt
subl my_folder_name

在Sublime中分别打开文件和文件夹。


更进一步

我使用一个BASH函数来更进一步实现以下好处

  • 将快捷键缩短为s(比subl要短一些)。
  • 如果在subl/s后面没有指定文件/文件夹,则自动打开当前目录。

如果您愿意,在运行上述命令后,可以通过运行以下命令来使用此函数:

cd
subl .bashrc

这应该会在Sublime Text中打开.bashrc文件。将以下内容添加到底部。

function s {
  if [ "$1" != "" ]; then
    subl $1
  else
    subl $PWD
  fi
}   

你只需输入s,就可以打开Sublime了(所有Sublime的参数仍然有效)...

(顺带一提,我也使用类似的函数来代替open命令(在Mac下)/或者是xdg-open命令(在Ubuntu下),将命令简化为o。我经常用它来在文件管理器中打开当前目录)...


Fish Shell用户(你知道你自己是谁)

上面的export命令在Fish Shell下不起作用;所以请改用以下命令:

set PATH $HOME/bin:$PATH
After Edit

我曾经安装过不同版本的命令行 subl 和 sublime text 三,然后我只是删除了 subl 命令并重新添加,这样问题就解决了...

对于那些可能会发现这个有用的人 - 这就是我所做的:

 subl -v

这向我展示了命令行Sublime的构建方式,当我将其与我的实际Sublime版本进行比较时,我注意到命令行subl是一个旧版本。 因此,我尝试使用以下命令找到命令行subl的位置(对我来说,这是/usr/bin/subl):

which subl

所以我首先删除了这个旧的命令行Sublime Text。

sudo rm /usr/bin/subl   (use `sudo` only if necessary)

然后像上面那样将Subl重新添加到我的路径中


我不赞同您将subl的完整路径添加到 $PATH 的建议。那会带来很多噪声,如果您为每个小型可执行文件这样做,您的路径会变得混乱。存在可执行目录,这就是为什么我推荐从其中一个目录(例如在 OS X 上的 /usr/local/bin)通过符号链接连接到 subl。所以运行 ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl。其余解释请参见:http://olivierlacan.com/posts/launch-sublime-text-3-from-the-command-line/ - Olivier Lacan
对于运行BASH的用户(即大多数人):如果您没有运行bash怎么办?我使用fish,而符号链接subl会导致打开一个空白文档,就像OP所描述的那样。当我从bash执行相同的符号链接时,它按照您所描述的方式工作。 - Jay

31

要在同一文件夹中打开Sublime,只需在命令行中键入以下内容:

subl . 

为了工作,您必须配置一些内容:

1)为了防止打开之前的项目,您应该设置以下属性为您的Sublime用户设置:

"hot_exit": false,
"remember_open_files": false

2) 为了能够在任何地方使用subl.exe,您应该将Sublime文件夹添加到环境变量中。即: C:\ Program Files \ Sublime Text 3


10

这是因为默认情况下侧边栏不显示,您可以通过

显示侧边栏

来显示侧边栏。

View > Side Bar> Show Side Bar

[输入图像描述1

]


你的回答似乎与问题无关...你能解释一下你提到的边栏是什么吗? - Mohammad Kanan
我在尝试通过subl打开文件夹时遇到了同样的问题,但它没有显示已打开的文件夹。最终,我发现这是因为Sublime Text默认不显示侧边栏,这就让我困惑了,以为文件夹没有被打开。当我启用“显示侧边栏”选项后,我才能看到已打开的文件夹。 - Ivan Li
这也成为了我的问题。 (托脸) - SilasOtoko

4
我之前曾遇到过这个问题,无论是在Mac OSX还是Windows上,我都发现了一些奇怪的问题; Mac OSX 你必须已经打开Sublime Text才能使用subl ./folder_name命令打开文件夹,或者在关闭所有窗口后退出Sublime时,Sublime必须仍然处于打开状态——如果你关闭了所有窗口然后退出Sublime,使用subl ./folder_name命令将只会打开一个空白的Sublime窗口。 Windows 你必须已经打开Sublime才能使用subl ./folder_name命令。如果没有打开Sublime,则只会打开一个空白的Sublime窗口。
无论你如何退出Sublime / 何时关闭Sublime,我都还没有找到一种方法可以使该命令正常打开文件夹。
尝试在运行命令时保持Sublime处于打开状态,看看是否有效。

@IsmailM,不幸的是,我的所有版本号都是相同的。 - olimortimer
有用!@olimortimer 我认为这可以让我们达到我们想要的目标:{"hot_exit": false, "remember_open_files": false} - Paul Irish

1
我在使用同时安装了Sublime Text 2和3的情况下,打开Sublime Text 3时遇到了困难。为了解决这个问题:
1)从终端打开 /usr/local/bin。
2)找到并删除bin文件夹内的subl。
3)将“/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl”复制并粘贴到终端中的/usr/local/bin/subl。
4)在bin文件夹中找到新的subl。
5)在终端中使用subl命令验证是否正确打开Sublime Text 3。
6)使用subl -v,得到Sublime Text Build 3083。

1
要在Sublime Text中将文件夹打开为项目,请在您要打开的文件夹中使用subl .命令。 Linux 因此,如果您想打开〜/Documents/folder_name,请在终端中移动到该文件夹cd Documents/folder_name并键入命令subl . 注意:这仅在Ubuntu上测试过Sublime Text 2。 编辑答案在此处找到:http://olivierlacan.com/posts/launch-sublime-text-3-from-the-command-line/

1

MAC OSX 打开终端并运行以下命令:

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

上述命令仅需要在首次配置时运行。配置完成后,每当您进入项目所在的文件夹时,请运行以下命令:

subl .


0

针对Linux和MacOS用户以及Sublime Text 3 尝试使用以下命令: subl3


0

可能在'Oh my fish'提供的别名中有一个名为subl的别名。您可以使用终端中的alias命令来检查是否存在别名。这将显示您会话中的所有别名。如果它在列表中,则与您的符号链接冲突。通过修复源代码或使用unalias subl(unalias只会在当前会话中修复)来禁用别名。

我在使用osx的bash-it别名时遇到了这个问题。禁用它对我来说解决了问题。


0

虽然已经有多个答案了,我很抱歉增加了噪音,但我不明白为什么要使用subl ./folder_name来打开本地目录。为什么不使用subl folder_name/呢?

无论哪种方式,在我的OS X上安装的ST3(build 3083)都会使用subl ./childsubl child/打开子目录,无论在执行命令之前是否打开Sublime。

PS:确保在运行Command+K然后B时不要关闭侧边栏。我经常认为目录无法打开只是因为我关闭了侧边栏,看不到其中列出的文件。


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