我希望制作一个 Sublime Text 2 插件,它将在屏幕底部的一个区域中显示信息,就像控制台一样。但是在这个区域,我希望从我的插件中显示我自己的文本,与控制台无关。
这是打开控制台的窗口的屏幕截图。
如何才能做到这一点?
我希望制作一个 Sublime Text 2 插件,它将在屏幕底部的一个区域中显示信息,就像控制台一样。但是在这个区域,我希望从我的插件中显示我自己的文本,与控制台无关。
这是打开控制台的窗口的屏幕截图。
如何才能做到这一点?
基本上,你需要的是
self.window.get_output_panel("textarea")
self.window.run_command("show_panel", {"panel": "output.textarea"})
一个简单的例子如下所示。您可以参考默认包中的 exec 命令:C:\Users\lhuang\AppData\Roaming\Sublime Text 2\Packages\Default\exec.py
.
class ShowTextAreaCommand(sublime_plugin.WindowCommand):
def run(self):
self.output_view = self.window.get_output_panel("textarea")
self.window.run_command("show_panel", {"panel": "output.textarea"})
self.output_view.set_read_only(False)
edit = self.output_view.begin_edit()
self.output_view.insert(edit, self.output_view.size(), "Hello, World!")
self.output_view.end_edit(edit)
self.output_view.set_read_only(True)
而且,如果您要使用 Sublime Text 3,则 begin_edit() 和 end_edit() 已贬值:
class ShowTextAreaCommand(sublime_plugin.WindowCommand):
def run(self):
self.output_view = self.window.get_output_panel("textarea")
self.window.run_command("show_panel", {"panel": "output.textarea"})
self.output_view.set_read_only(False)
# edit = self.output_view.begin_edit()
# self.output_view.insert(edit, self.output_view.size(), "Hello, World!")
self.output_view.run_command("append", {"characters": "Hello, World!"})
# self.output_view.end_edit(edit)
self.output_view.set_read_only(True)