VSCodeで一つの動作に複数のキー割り当てる
エディタにVSCodeを使ってみることにしました
キーバインドもVSCodeに乗り換えようと思いましたが、
指に染み付いている動きはなかなか変えられないのでキーバインドを変更します
ctrl + shift + p でコマンドパレットを開き、
Preferences: Open Keyboard Shortcuts 基本設定: キーボード ショートカットを開く
を選択します
あとは動作を検索し、キーが重複しないように注意しながらキーを割り当てていきます
デフォルトは矢印キーでカーソル移動ですが、私はそれに加えてvimのような操作も今まで割り当てていたので、
CursorUp
の動作に、UpArrow
とctrl + k
の両方を割り当てがしたくなりましたが、
Keybord Shortcutsからでは一つしかキーが割り当てられませんでした
調べてもいい記事が出てこなかったので備忘録として残しておきます
高度なカスタマイズ
という文字に目を惹かれクリックしました
keybindings.jsonをみてみると自分がカスタマイズした部分のみ抽出されていました フォーマットは以下の通り
{ "key": [キー], "command": [動作], "when": [条件] },
例えばKeybord Shortcutsから全選択(デフォルトではctrl + a
)の動作にctrl + shift + a
を割り当てたときにkeybindings.jsonにはこのように追加されます
{ "key": "ctrl+shift+a", "command": "editor.action.selectAll", "when": "textInputFocus" }, { "key": "ctrl+a", "command": "-editor.action.selectAll", "when": "textInputFocus" },
ポイントなのはctrl+a
のキーにも新しい割り当てがされているということです
どうやら"command"の[動作]の先頭に -
を付けるとその動作を削除するという意味があるようです
{ "key": "ctrl+k", "command": "cursorUp", "when": "textInputFocus" }, { "key": "up", "command": "-cursorUp", "when": "textInputFocus" },
実際にKeybord ShortcutsからCursorUp
の動作にctrl + k
を割り当てた部分を見てみると、up
の割り当てが削除されていました。
矢印キーは効いて欲しいのでこの部分は削除しました。
{ "key": "ctrl+k", "command": "cursorUp", "when": "textInputFocus" },
これでctrk + k
でも矢印キーでも上に移動できるようになりました。
Keybord Shortcutsから見てみると元の設定も追加した設定も表示されていました。
おしまい