有效地将不同的键绑定到同一命令

时间:2013-07-11 14:08:49

标签: keyboard-shortcuts sublimetext2

我正在为SublimeText2开发一个Prolog REPL插件。就像prolog解释器本身一样,我想为同样的动作提供多种不同的键绑定;例如可以同时使用;n来解除repl提供的解决方案。目前,要实现这一点,我只需复制键绑定:

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

这大大打破了keybindings文件的大小,因为许多定义相当大,因为它们仅适用于特定的上下文。有没有办法在不重复绑定的情况下执行此操作,或者我可以做些什么来优化它?

1 个答案:

答案 0 :(得分: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" },

将双键序列映射到动作 - 按 Ctrl K ,然后按 Ctrl D 运行命令。

抱歉!