是否有可能在崇高的文字2中链接键绑定命令?

在Sublime Text中,当我想要显示侧边栏中的当前文件,然后浏览文件夹结构时,有时会出现这种情况。

这可以使用命令reveal_in_side_barfocus_side_bar来实现,但是它们必须绑定到两个单独的组合键,所以我必须做2个键盘组合才能达到我的目标,理想情况下我只想要一个(我很懒)。

有没有办法将多个命令绑定到单个组合键? 比如这样的东西:

 { "keys": ["alt+shift+l"], "commands": ["reveal_in_side_bar", "focus_side_bar"] }, 

根据@ artem-ivanyk和@ d_rail的回答

1)工具→新插件

 import sublime, sublime_plugin class RevealInSideBarAndFocusCommand(sublime_plugin.WindowCommand): def run(self): self.window.run_command("reveal_in_side_bar") self.window.run_command("focus_side_bar") 

另存为RevealInSideBarAndFocus.py

2)崇高文本2→首选项→键绑定 – 用户

绑定到快捷方式:

 { "keys": ["alt+shift+l"], "command": "reveal_in_side_bar_and_focus" } 

更新@Artem Ivanyk的答案。 我不知道Sublime有什么变化,但是这个解决scheme对我来说并不起作用,但是我得到了这个工作:

 import sublime, sublime_plugin class RevealInSideBarAndFocusCommand(sublime_plugin.WindowCommand): def run(self): self.window.run_command("reveal_in_side_bar") self.window.run_command("focus_side_bar") 

 { "keys": ["ctrl+shift+8"], "command": "reveal_in_side_bar_and_focus" } 

顺便说一句,我使用Build 2220

虽然这个问题已经一年多了,但这可能会帮助那些仍然在寻找答案的人。

最近,jisaacks开发了一个新的包,叫做Chain of command 。 它的主要任务是完成你所要求的事情,一次链接几个命令。

该包可以在这里find: https : //github.com/jisaacks/ChainOfCommand

工作的一个例子可以在下面find。

假设你想要一个键绑定来复制当前文件。 你可以设置这个键绑定:

 { "keys": ["super+shift+option+d"], "command": "chain", "args": { "commands": [ ["select_all"], ["copy"], ["new_file"], ["paste"], ["save"] ] } } 

这将select所有文本,复制它,创build一个新文件,粘贴文本,然后打开保存文件对话框。

来源: https : //sublime.wbond.net/packages/Chain%20of%20Command 。

偶然遇到类似的问题。 当试图loggingmacros,其中涉及“保存”命令,控制台扔我“未知的macros命令保存”消息。 用基本插件工作。

1) 工具→新插件

 import sublime, sublime_plugin class MyChainedActionsCommand(): def run(self): self.view.run_command("reveal_in_side_bar") self.view.run_command("focus_side_bar") 

您需要使用上面的骆驼大小写符号来表示类名。 ST2公开了这个类的命令名,删除了“Command”后缀,其余的转换成了小写的下划线符号。 即在这个例子中MyChainedActionsCommand可以运行在崇高的控制台input: view.run_command("my_chained_actions")

2) 崇高文本2→首选项→键绑定 – 用户

绑定到快捷方式:

{ "keys": ["alt+shift+l"], "command": "my_chained_actions" }

注意逗号。

看看这个要点 。

我一直在努力实施这个很长一段时间,发现这个意外。

不要忘记阅读提供的“文档”。 我一直试图做这个工作,直到我调整我没有通过“上下文”的关键。

你可以创build一个macros来做到这一点。 对于Sublime Text来说,macros本质上就是链式命令。 然后,您为该macros创build一个键绑定。 你可以使用Tools > Record Macro创build一个macros,然后执行你的命令(注意,macros也logging了击键,所以你需要使用菜单栏中的命令不会引起冲突),然后Stop Recording ,然后Save Macro 。 保存macros后,可以在Sublime Text中将其打开,以确保它只logging了所需内容。

在Artem Ivanyk的回复的基础上,这里是ChainedActions的一个版本,与论据一起工作。 actionsargs需要两个参数。 这两个都是列表,列表中的每个命令都用相应的参数执行。 这个愚蠢的例子插入两个片段: view.run_command("chained_actions", {"actions":["insert_snippet","insert_snippet"],"args":[{"contents": " ($ 0)”},{内容“:”1($ 0)“}]})`

 import sublime import sublime_plugin class ChainedActionsCommand(sublime_plugin.TextCommand): def run(self, edit, actions, args): for i, action in enumerate(actions): self.view.run_command(action, args[i]) 

我试图使用相同的命令,但我最终得到了一个错误,当文件的文件夹已经展开崇高移动我的焦点侧栏的顶部,在那里我可以看到打开的文件。 为了改善这种行为,我写了一个新的插件,确保它的行为符合我的要求,这里是https://github.com/miguelgraz/FocusFileOnSidebar

我正在使用Sublime text3 build-3083.它只是通过“在侧栏中显示”来解决问题,焦点自动出现。

我已经添加了一个自定义的键盘快捷键“在侧边栏中显示”,在Preferences-> Key Bindings-User下添加以下语句:

 [ { "keys": ["ctrl+shift+r"], "command": "reveal_in_side_bar"} ] 

由于上下文菜单没有右键单击鼠标,因此图像文件types中缺less“在侧栏中显示”选项。 在这种情况下,自定义键盘快捷方式很方便。