是否有可能在崇高的文字2中链接键绑定命令?
在Sublime Text中,当我想要显示侧边栏中的当前文件,然后浏览文件夹结构时,有时会出现这种情况。
这可以使用命令reveal_in_side_bar
和focus_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的一个版本,与论据一起工作。 actions
和args
需要两个参数。 这两个都是列表,列表中的每个命令都用相应的参数执行。 这个愚蠢的例子插入两个片段: 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“在侧栏中显示”选项。 在这种情况下,自定义键盘快捷方式很方便。