如何通过命令行在Sublime Text指定分组中打开文件?
在Sublime Text指定分组中通过命令行打开文件
我之前搭配TerminalView用Sublime的时候也碰到过这个糟心的问题——终端在第二分组,每次从命令行打开文件都自动跑到终端分组里,完全打乱了编辑节奏!给你几个亲测有效的解决方案:
方案1:直接用命令行组合命令
subl 支持通过 --command 参数先切换到目标分组,再打开文件。注意要把命令参数用单引号包裹(避免bash解析JSON时出错),比如你要打开文件到第0组(第一分组):
subl --command 'focus_group {"group": 0}' /path/to/your/target/file.txt
原理很直白:先执行 focus_group 命令切到指定分组,再让subl打开文件,这时文件就会在激活的分组里加载了。
方案2:自定义Sublime命令(更灵活)
如果经常需要这个操作,写个自定义命令能省不少事:
- 打开Sublime,点击
Preferences > Browse Packages,进入User目录 - 新建文件
open_in_group.py,粘贴以下代码:
import sublime import sublime_plugin import os class OpenInGroupCommand(sublime_plugin.WindowCommand): def run(self, group, paths): # 切换到指定分组 self.window.focus_group(group) # 逐个打开文件/目录 for path in paths: if os.path.isfile(path): self.window.open_file(path) else: self.window.run_command("open_dir", {"dir": path})
- 保存后,在终端里就能用这个命令直接指定分组打开文件(还支持批量操作):
subl --command 'open_in_group {"group": 0, "paths": ["/path/to/file1.txt", "/path/to/work_folder"]}'
方案3:修改TerminalView默认打开命令
既然你固定用TerminalView,还可以直接修改它的配置,让终端里的subl命令默认打开到目标分组:
- 打开TerminalView的设置:
Preferences > Package Settings > TerminalView > Settings - User - 在配置里找到
terminal_view_open_command,把默认的subl替换成方案1里的命令:
{ "terminal_view_open_command": "subl --command 'focus_group {\"group\": 0}' $PATH" }
注意这里要转义双引号,保存后,在TerminalView里用subl打开文件就会自动跳到第0组了!
小提醒
- Sublime的分组编号是从0开始计数的,第一分组是0,第二分组是1,别搞混啦~
- 你之前用
focusGroup 0无效,大概率是命令格式不对——正确的命令是focus_group(下划线,不是驼峰),而且参数要写成标准JSON格式。
内容的提问来源于stack exchange,提问作者Urmil Parikh
相关产品推荐
相关产品推荐

