2013-07-11 3 views
0

Я разрабатываю плагин Prolog REPL для SublimeText2. Как и сам интерпретатор пролога, я хочу предложить несколько разных привязок для одних и тех же действий; например можно использовать как ;, так и n, чтобы отклонить решение, представленное repl. В настоящее время для достижения этой цели я просто дублировать данное сочетание клавиш:Эффективно связывать разные ключи с той же командой

{ "keys": [";"], "command": "mycmd", "args": {}, 
"context": 
    [ 
     { "key": "setting.some_setting", "operator": "equal", "operand": true }, 
     { "key": "replmode_p"} 
    ] 
}, 
{ "keys": ["n"], "command": "mycmd", (etc ...) } 

Это взрывает размер привязок файла значительно, как многие из определений достаточно велики, поскольку они применяются только к конкретным условиям. Есть ли способ сделать это, не дублируя привязки или что-нибудь еще, что я могу сделать, чтобы оптимизировать это?

ответ

1

Просто быстро просматривать через Preferences->Key Bindings-Default показывает несколько записей для одних и тех же команд, например

{ "keys": ["backspace"], "command": "left_delete" }, 
{ "keys": ["shift+backspace"], "command": "left_delete" }, 
{ "keys": ["ctrl+shift+backspace"], "command": "left_delete" }, 

и

{ "keys": ["shift+delete"], "command": "cut" }, 
{ "keys": ["ctrl+insert"], "command": "copy" }, 
{ "keys": ["shift+insert"], "command": "paste" }, 
{ "keys": ["ctrl+x"], "command": "cut" }, 
{ "keys": ["ctrl+;"], "command": "cut" }, 
{ "keys": ["ctrl+c"], "command": "copy" }, 
{ "keys": ["ctrl+v"], "command": "paste" }, 

только в первые 40 строк (на Windows), поэтому, к сожалению, я думаю, ответ - нет. Единственный способ, которым я мог думать, делать это,

{ "keys": ["ctrl+k", "ctrl+d"], "command": "find_under_expand_skip" }, 

карты двойной последовательности клавиш к действию - удары CtrlK, затем нажать Ctrl D запускает команду.

Извините!