如何制作Sublime Text 2插件,底部有自定义显示区域,如控制台?

时间:2013-03-16 03:36:00

标签: sublimetext2 sublimetext

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

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

enter image description here

如何做到这一点?

2 个答案:

答案 0 :(得分:11)

基本上,你需要的是

  1. 创建输出面板:self.window.get_output_panel("textarea")
  2. 显示此面板:self.window.run_command("show_panel", {"panel": "output.textarea"})
  3. 一个简单的例子如下所示。您可以在默认包中引用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)
    

答案 1 :(得分:3)

如果您正在寻找Sublime Text 3,其中begin_edit()和end_edit()是depreciated

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)