如何获取Sublime Text 3列中每个活动选项卡的内容?

时间:2015-08-20 15:58:27

标签: python python-3.x sublimetext3 sublimetext sublime-text-plugin

我正在为Sublime编写一个插件,能够通过self.view获取活动视图的内容。但是,如果我在不同列中打开了两个文件,那么如何通过SublimeText3 API获取每个窗口中活动标签的内容(或至少window.id)?是否可以通过views()类的sublime.Window方法完成?

class ExampleCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        print (self.view.id())

- >它的工作原理

class TestCommand(sublime_plugin.WindowCommand):
    def run(self, edit):
        print (self.window.views())

- >当我运行view.run_command('test')

时,控制台没有错误

非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

如果查看链接的文档,self.window.views()会返回一个视图列表。视图是对象,无法打印。试试这个:

class TestCommand(sublime_plugin.WindowCommand):
    def run(self):
        print([view.id() for view in self.window.views()])

这将打印窗口中每个视图的唯一ID。如果需要,您可以替换sublime.View的任何方法。

要从Sublime的控制台运行WindowCommand,请使用

window.run_command("command_name")

而通过访问TextCommand对象来运行view

view.run_command("command_name")