我正在为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文件的大小,因为许多定义相当大,因为它们仅适用于特定的上下文。有没有办法在不重复绑定的情况下执行此操作,或者我可以做些什么来优化它?
答案 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 运行命令。
抱歉!