我知道可以通过转到控制台View -> Show Console
并键入来记录命令
sublime.log_commands(True)
但是,不会记录通过命令面板运行的命令,它只显示:
command: show_overlay {"overlay": "command_palette"}
有没有办法记录通过调色板运行的命令?
我知道可以通过转到控制台View -> Show Console
并键入来记录命令
sublime.log_commands(True)
但是,不会记录通过命令面板运行的命令,它只显示:
command: show_overlay {"overlay": "command_palette"}
有没有办法记录通过调色板运行的命令?
目前没有办法记录正在从命令面板执行的命令,不。如果我没记错的话,这在旧版本的 Sublime 中是可能的,但是在命令面板能够接受类似命令的输入时View Package File
,它就停止了工作。这可能是用于触发命令面板中的输入处理的机制的一个分支,但这只是一个猜测。
通常一个插件可以用来跟踪这样的事情,因为EventListener
类在命令执行之前和之后有事件告诉你。但是,跟踪器上有一个关于触发 on_post_window_command 的命令调色板的未解决问题,这可能与日志中未显示的命令相同。
目前,了解从命令面板调用哪些命令和参数的唯一方法是自省sublime-commands
提供它们的文件。
与菜单不同,命令面板中的命令不允许有动态标题,因此找到具有"caption"
您知道正在选择的文本的命令条目是一件相对简单的事情。
棘手的部分可能是确定命令的来源。在控制台中,sublime.find_resources('*.sublime-commands')
将显示每个已知命令文件的列表,您可以通过View Package File
命令面板打开它们。
通常,Sublime 附带的任何内容都在 中Default/Default.sublime-commands
,并且由包添加的任何内容都以添加它的包的名称为前缀,这有助于确定要检查的文件。
请注意,命令面板中有一些命令是由 Sublime 添加的,它们不是来自命令文件;插入片段的命令和更改语法的命令。这些是动态确定的,因为语法和片段列表可能会发生变化。