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

How to get content of each active tab in column of Sublime Text 3?

我正在为 Sublime 编写一个插件,能够通过 self.view 获取活动视图的内容。但是,如果我在不同的列中有两个打开的文件,如何通过 SublimeText3 API 获取每个 window 中活动选项卡的内容(或至少 window.id)?是否应该通过 sublime.Window class 的 views() 方法完成?

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')

时控制台中没有错误

非常感谢任何建议。

如果您查看链接的文档,self.window.views() returns 视图列表。视图是对象,不能打印。试试这个:

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

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

从 Sublime 的控制台到 运行 WindowCommands,使用

window.run_command("command_name")

TextCommand 通过访问 view 对象是 运行:

view.run_command("command_name")