0

SublimeText2 用の Prolog REPL プラグインを開発しています。プロローグ インタープリター自体と同様に、同じアクションに対して複数の異なるキーバインドを提供したいと考えています。たとえば、 と の両方;を使用nして、repl によって提示されたソリューションを却下することができます。現在、これを実現するために、キーバインドを複製するだけです:

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

特定のコンテキストにのみ適用されるため、多くの定義がかなり大きいため、これによりキーバインディングファイルのサイズが大幅に大きくなります。バインディングを複製せずにこれを行う方法はありますか、またはこれを最適化するために他にできることはありますか?

4

1 に答える 1

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ますCtrlD

ごめん!

于 2013-07-11T16:12:06.923 に答える