9

我希望制作一个 Sublime Text 2 插件,它将在屏幕底部的一个区域中显示信息,就像控制台一样。但是在这个区域,我希望从我的插件中显示我自己的文本,与控制台无关。

这是打开控制台的窗口的屏幕截图。

在此处输入图像描述

如何才能做到这一点?

4

2 回答 2

11

基本上,你需要的是

  1. 创建输出面板:self.window.get_output_panel("textarea")
  2. 显示此面板: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)
于 2013-03-16T04:24:19.003 回答
5

而且,如果您要使用 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)
于 2013-09-22T06:32:56.827 回答