【问题标题】:Open a folder in Sublime Text 3 using command line使用命令行在 Sublime Text 3 中打开一个文件夹
【发布时间】:2014-12-11 16:56:55
【问题描述】:

我正在尝试在 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 确实打开(带有一个空的新文档),我在侧栏中看不到该文件夹​​。

我做错了吗...

顺便说一句。我正在使用带有“哦,我的鱼”附加组件的鱼壳(我还添加了 sublime 附加组件)......

【问题讨论】:

  • sublime /path/to/folder/file 假设 sublime 指向可执行文件

标签: command-line sublimetext3 fish


【解决方案1】:

仅限 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 参数仍然有效)...

(Side Point,我也对open (for mac) / or xdg-open (for ubuntu) 使用了类似的函数;我将命令缩短为 o。我经常使用它来打开文件管理器中的当前目录)...


鱼壳用户(你知道自己是谁)

上面的导出行不起作用;所以换成下面的

set PATH $HOME/bin:$PATH


编辑前

我安装了不同版本的命令行 subl 和 sublime text 三个。我只是删除了 subl 命令,然后重新添加,这为我解决了问题......

对于那些可能觉得这很有用的人 - 这就是我所做的:

 subl -v

这向我展示了命令行 sublime 的构建,当我对照我的实际 Sublime 版本检查它时,我注意到命令行 subl 是一个较旧的构建。所以我尝试使用以下命令查找命令行 subl 的位置(对我来说这是/usr/bin/subl):

which subl

所以我首先删除了这个旧的命令行 sublime 文本。

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

然后将 Subl 重新添加到我的 PATH(如上)

【讨论】:

  • 我不同意您将subl 的完整路径添加到$PATH 的建议。这是一个很大的噪音,如果你对每个小的可执行文件都这样做,你的路径就会一团糟。有可执行目录,这就是为什么我建议从其中一个目录符号链接到subl,比如 OS X 上的/usr/local/bin。所以ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl。其余的解释在这里:olivierlacan.com/posts/…
  • "对于运行 BASH 的用户(即大多数人):" - 如果您不运行 bash 怎么办?我使用fish,并且符号链接 subl 只会打开一个空白的新文档,就像 OP 描述的那样。当我从 bash 执行相同的符号链接时,它会按照您的描述工作。
【解决方案2】:

要在同一个文件夹中打开 sublime,您只需在命令行中输入:

subl . 

为了工作,你必须配置一些东西:

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

"hot_exit": false,
"remember_open_files": false

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

【讨论】:

    【解决方案3】:

    这是因为默认不显示侧边栏,你可以通过显示侧边栏

    View > Side Bar> Show Side Bar
    

    [1

    【讨论】:

    • 您的回答似乎与问题无关..您能解释一下您提到的侧边栏吗?
    • 我在尝试通过subl打开文件夹时遇到了同样的问题,但是它没有显示打开的文件夹,最后我发现这是因为sublime text默认不显示侧边栏,这就是为什么它让我感到困惑的是文件夹没有打开,当我启用上面显示的显示侧栏时,我可以看到打开的文件夹。
    • 这也是我的问题。 (手掌对着脸)
    【解决方案4】:

    我以前在 Mac OSX 和 Windows 上都遇到过这个问题,我发现它有些奇怪;

    Mac OSX 您要么必须已经打开 Sublime Text 才能使用 subl ./folder_name 命令实际打开文件夹,要么必须在窗口仍然打开的情况下退出 Sublime - 如果关闭所有窗口然后退出 Sublime,使用 subl ./folder_name 命令只会打开一个空白的 Sublime 窗口。

    Windows 您必须打开 Sublime,subl ./folder_name 才能工作。没有打开 Sublime,它只会打开一个空白的 Sublime 窗口。

    无论您如何退出 Sublime / 当您关闭 Sublime 时,我还没有找到一种可以正常打开命令的方法。

    尝试在运行命令时打开 Sublime,然后看看它是否有效。

    【讨论】:

    • @IsmailM 不幸的是我的版本号都一样
    • 有用! @olimortimer 我认为这可以让我们到达我们想要的地方:{ "hot_exit": false, "remember_open_files": false}
    【解决方案5】:

    要在 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/

    【讨论】:

      【解决方案6】:

      我在使用当前安装的 sublime text 2 打开 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

      【讨论】:

        【解决方案7】:

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

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

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

        subl.

        【讨论】:

          【解决方案8】:

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

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

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

          【讨论】:

            【解决方案9】:

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

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

            【讨论】:

              【解决方案10】:

              适用于 Linux 和 MacOs 用户以及 Sublime Text 3 试试命令: subl3

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-09-18
                • 2017-03-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-06-15
                • 1970-01-01
                • 2016-04-13
                相关资源
                最近更新 更多