Несколько "команд" в одном ярлыке сочетания клавиш Sublime Text 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 } }

Этот вопрос заставляет меня звучать так, будто я ленив, но я бы хотел подумать об этом как о эффективном.

Любые советы или предложения, пожалуйста?

Ответы

Ответ 1

Установите плагин "Цепь команды" (работает как на ST2, так и на ST3):
https://github.com/jisaacks/ChainOfCommand https://packagecontrol.io/packages/Chain%20of%20Command

Затем вы сможете делать такие вещи, как:

{ "keys": ["ctrl+d"],
  "context": [
    { "key": "panel_visible", "operator": "equal", "operand": true }
  ],
  "command": "chain",
  "args": {
    "commands": [
      ["hide_panel", {"cancel": true}],
      ["find_under_expand"],
    ]
  },
},

который переопределяет Ctrl + D, чтобы закрыть панель поиска, если она открыта, а затем выполнить ее нормальное действие (Quick Add Next).

Вы можете выполнить любое количество подкоманд. Каждый из них представляет собой массив с именем команды (например, "hide_panel"), за которым следуют необязательные аргументы (например, {"cancel": true}).

Ответ 2

Там есть сообщение на форуме Sublime Text 2, который включает в себя код для общего плагина "запускать несколько команд". Это позволит вам привязать несколько команд к любой привязке клавиш так же, как вы обычно привязываете их к одному:

  {
    "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 } }
      ]
    }
  }

Обратите внимание, что это не проверено, и вы должны установить плагин, указанный в сообщении, чтобы это работало.

В качестве альтернативы вы можете создать плагин для определенного набора команд, следуя инструкциям в этом ответе.

Ответ 3

Вы можете записать макрос (с помощью меню "Сервис" ), затем сохранить его и установить комбинацию клавиш для вызова с помощью

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

http://docs.sublimetext.info/en/latest/extensibility/macros.html

Конечно, это не совсем то, о чем вы просите, но может предоставить тот же конец другим людям с похожими вопросами.