1

我正在尝试创建一个自定义包,我想做的一件事是在命令面板(show_overlay)中调出构建系统(位于工具菜单项中)。所以我试图在我的包中创建一个 Default.sublime-commands 文件并输入...

[
    { "caption": "Build System", "command": "build_system" }
]

...为命令调色板启用该菜单项(我也尝试过 set_build_system),然后我在我的包中创建了一个 Default.sublime-keymap 文件,以便我可以通过快捷方式访问构建系统列表...

[
    { 
  "keys": ["f9"], "command": "show_overlay", 
  "args": {"overlay": "command_palette", "text": "Build System"} 
}
]

我没有任何运气将构建系统菜单项暴露给命令面板。我能得到一些帮助吗?我还注意到命令面板中也没有工具菜单项。我错过了什么?

4

1 回答 1

2

好的,我想通了。命令面板只能由在 sublime 中运行的现有命令填充。查看在 sublime 中运行的命令的方法是打开控制台(CTR + ~)并输入 sublime.log_command(True)

现在,每当您执行任何使 sublime 触发命令的操作时,它都会在控制台中记录该操作。有了这些知识,我们转到工具 > 构建系统并单击我们想要的构建系统类型,比如 C++,我们得到:

 command: set_build_system {"file": "Packages/C++/C++.sublime-build"}

甜的!知道了这一点,我们可以转到我们的 .sublime-commands 文件(您可以将其称为 Default.sublime-commands)并输入以下代码:

[
     {
           "caption": "Set Build System: C++", "command": "set_build_system", 
           "args": { "file":"Packages/C++/C++.sublime-build" } 
     }

]

提示:密切注意“标题”,我们将使用它来将 .sublime-command 文件与 .sublime-keymap 文件联系起来。让我们添加另一个构建系统:

[
     {
         "caption": "Set Build System: C++", "command": "set_build_system", 
         "args": { "file":"Packages/C++/C++.sublime-build" } 
     },

     {
        "caption": "Set Build System: Python", "command": "set_build_system", 
        "args": { "file":"Packages/Python/Python.sublime-build" } 
     }



]

现在我们已经在 .sublime-commands 文件中公开了这两个命令。我们可以在 .sublime-keymap 文件中为它创建一个快捷方式。我调用了我的 Default.sublime-keymap:

[
     {
         "keys": ["f8"], "command": "show_overlay",
         "args": {"overlay": "command_palette", "text": "Set Build System:"}
     }
]

注意“文本”键。看起来熟悉?这就是您将键绑定连接到命令的方式。保存按 F8 和繁荣!您有我们自己的自定义命令调色板菜单。享受!

PS:你可以将你的 .sublime-commands/.sublime-keymap 文件放在你的用户包中,或者如果你想自定义你的 sublime 文本 2 而不制作自定义包,可以添加到任何现有的文件中。

于 2013-08-06T21:45:37.170 回答