2017-06-14 54 views

回答

0

没有内置的命令,我知道这可以做到这一点,但可以轻松创建一个。 (从技术上说,它可以使用默认包中的书签功能和内置的“扩展选择线”功能来实现,但是经验表明,写入命令会更好更可靠。 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] }"

为什么我在单独一行指定命令/调用subl(这种风格逃避报价JSON字符串从Windows命令提示符和Linux的Bash的作品)?由于这两个注意事项:

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

可以说,点2仍然可以发生在多个调用subl,但希望它不太可能。 ST错误跟踪器有一个更好的命令行命令处理问题:https://github.com/SublimeTextIssues/Core/issues/1457

+0

优秀的答案。完美的作品。谢谢 –

相关问题