Sublimetext3 “多重”;“命令”;在单个Sublime Text 2用户键映射快捷方式中

Sublimetext3 “多重”;“命令”;在单个Sublime Text 2用户键映射快捷方式中,sublimetext3,sublimetext2,sublimetext,keymapping,sublimetext4,Sublimetext3,Sublimetext2,Sublimetext,Keymapping,Sublimetext4,有没有办法让多个“命令”与一个快捷方式关联 我有两条捷径。第一个快捷方式使左侧的窗口大于右侧的窗口(在2列视图中),下一个快捷方式将焦点放在第一个窗口上。在快速编写代码时,我往往会忘记一个或另一个快捷方式 { "keys": ["super+alt+left"], "command": "set_layout", "args": { "cols": [0.0, 0.66, 1.0], "rows": [0.0, 1.0],

有没有办法让多个“命令”与一个快捷方式关联

我有两条捷径。第一个快捷方式使左侧的窗口大于右侧的窗口(在2列视图中),下一个快捷方式将焦点放在第一个窗口上。在快速编写代码时,我往往会忘记一个或另一个快捷方式

{
    "keys": ["super+alt+left"],
    "command": "set_layout",
    "args":
    {
        "cols": [0.0, 0.66, 1.0],
        "rows": [0.0, 1.0],
        "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
    }
},
{ "keys": ["ctrl+alt+left"], "command": "focus_group", "args": { "group": 0 } }
这个问题让我听起来好像很懒,但我想把它看作是一种高效的方式

有什么建议吗?

上有一篇文章,其中包含了一个通用的“运行多个命令”插件的代码。它将允许您将多个命令绑定到任何键绑定,与通常将它们绑定到一个键绑定的方式相同:

  {
    "keys": ["super+alt+left"],
    "command": "run_multiple_commands",
    "args": {
      "commands": [
        { "command": "set_layout", "args": { "cols": [0.0, 0.66, 1.0], "rows": [0.0, 1.0], "cells": [[0, 0, 1, 1], [1, 0, 2, 1]] } },
        { "command": "focus_group", "args": { "group": 0 } }
      ]
    }
  }
请注意,这是未经测试的,您必须安装文章中提供的插件才能工作

或者,您可以按照中的说明为特定的命令集创建插件。

自Sublime Text 4(build 4104,2021年5月3日)起,您可以使用内置的
命令

在旧版本(ST2或ST3)中,您需要安装插件()

两者具有相同的语法,允许您编写执行多个操作的键绑定等,例如:

{“键”:[“ctrl+d”],
“背景”:[
{“key”:“panel_visible”,“operator”:“equal”,“operator”:true}
],
“命令”:“链”,
“args”:{
“命令”:[
[“隐藏面板”,{“取消”:true}],
[“在扩展下查找”]
]
}
},
这将重新定义Ctrl+D,以便在“查找”面板打开时关闭该面板,然后执行其正常操作(快速添加下一步)

您可以执行任意数量的子命令。每个都是一个数组,其命令名(例如
“hide_panel”
)后跟可选参数(例如
{“cancel”:true}
)。非官方的/不完整的可能会有帮助。

您可以录制宏(使用“工具”菜单),然后保存它,并设置键盘快捷键以使用调用它

{"keys": ["super+alt+l"], "command": "run_macro_file", "args": {"file": "res://Packages/User/Example.sublime-macro"}}


诚然,这并不是你想要的,但可能会为其他有类似问题的人提供相同的结果。

对于这些命令,必须添加
“上下文”:“窗口”
。例如:
{“command”:“focus_group”,“args”:{“group”:0},“context”:“window”}
。有趣的是,我发现了这个问题,想要执行完全相同的命令序列。这个插件值得更多starsAwesome插件,这应该标记为答案注意:对于刚刚学习sublime的人,您还可以将多个命令附加到自己编写的插件中的自定义类,例如
classmycustomcommand(sublime\u plugin.TextCommand)
,可以用python编写。看见