如何从命令行打开文件并在Sublime上选择/突出显示几行?



我知道subl myfile.txt:5会在第5行打开"myfile.txt"。但是,我希望能够从命令行打开一个突出显示或选中第 5,9,15 行的文件。我知道添加 –命令应该使我能够做到这一点,但是如何呢?命令是什么?

据我所知,没有内置命令可以做到这一点,但可以轻松创建一个。

(从技术上讲,可以使用默认包中的书签功能和内置的"将所选内容扩展到行"功能来完成。但是,经验表明,专门为此目的在 ST 中编写命令会更好、更可靠。

在ST中:

  • 从工具菜单 -> 开发人员 -> 新插件...
  • 全选并替换为以下内容
import sublime
import sublime_plugin

class SelectSpecificLinesCommand(sublime_plugin.TextCommand):
def run(self, edit, lines):
self.view.sel().clear()
for line in lines:
position = self.view.text_point(int(line) - 1, 0) # internally, line numbers start from 0
self.view.sel().add(self.view.line(position))
  • 将其保存在ST推荐的文件夹中(Packages/User/)作为类似select_lines.py(文件扩展名很重要)。
  • subl myfile.txt
  • subl --command "select_specific_lines { "lines": [5, 9, 15] }"(这种转义JSON字符串引号的风格适用于Windows命令提示符和Linux的Bash)

为什么我在单独的行上指定命令/调用subl?由于以下 2 个注意事项:

  1. ST 必须已经在运行,否则命令行上指定的命令可能无法执行,因为插件尚未加载。
  2. 该命令可以在加载文件之前执行。

可以说,第 2 点仍然可能发生多次调用subl,但希望可能性较小。ST 错误跟踪器上有一个未解决的问题,以便更好地处理命令行命令:https://github.com/SublimeTextIssues/Core/issues/1457。

最新更新