是否可以在sublime text 2中链接键绑定命令?

Jam*_*rth 48 keyboard-shortcuts sublimetext

Sublime Text中有时候我想在侧栏中显示当前文件,然后浏览文件夹结构.

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

有没有办法将多个命令绑定到单个组合键?例如:

{
  "keys": ["alt+shift+l"], 
  "commands": ["reveal_in_side_bar", "focus_side_bar"]
},
Run Code Online (Sandbox Code Playgroud)

基于@ 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")
Run Code Online (Sandbox Code Playgroud)

保存为RevealInSideBarAndFocus.py

2)Sublime Text 2→首选项→键绑定 - 用户

将它绑定到快捷方式:

{ "keys": ["alt+shift+l"], "command": "reveal_in_side_bar_and_focus" }
Run Code Online (Sandbox Code Playgroud)

Win*_*ied 35

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

最近,jisaacks开发了一个新包,称为Chain of command.它的主要任务是完全按照您的要求执行,一次链接多个命令.

该软件包可以在这里找到:https: //github.com/jisaacks/ChainOfCommand

可以在下面找到工作的一个例子.

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

{
  "keys": ["super+shift+option+d"], 
  "command": "chain", 
  "args": {
    "commands": [
      ["select_all"],
      ["copy"],
      ["new_file"],
      ["paste"],
      ["save"]
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

这将选择所有文本,复制它,创建新文件,粘贴文本,然后打开保存文件对话框.

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


d_r*_*ail 30

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

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")
Run Code Online (Sandbox Code Playgroud)

.

{ "keys": ["ctrl+shift+8"], "command": "reveal_in_side_bar_and_focus" }
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我正在使用Build 2220


小智 25

偶然发现了类似的问题.当试图记录涉及"保存"命令的宏时,控制台向我扔了 "未知宏命令保存"消息.用基本插件解决了问题.

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")
Run Code Online (Sandbox Code Playgroud)

您需要为类名使用上部驼峰案例表示法.ST2为命令名公开此类,删除了"Command"后缀,其余部分转换为小写 - 下划线表示法.即在这个例子中MyChainedActionsCommand可以在sublime的控制台输入中运行:view.run_command("my_chained_actions")

2) Sublime Text 2→首选项→键绑定 - 用户

将它绑定到快捷方式:

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

注意逗号.


小智 8

看看这个要点.

我一直试图在很长一段时间内实现这一点,并偶然发现了这一点.

不要忘记阅读提供的"文档".我一直试图让这项工作,直到我重新调整我没有传递"上下文"键.