けけずんセルフハッキング

エンジニアっぽい雰囲気を醸しだしているかのようなブログです!

VSCodeでAwesome Emacs Keymap使ってるときに検索バー内でカーソル移動したい

概要

VSCodeのキーマップ拡張「Awesome Emacs Keymap」を使っている際、ctrl+sまたは⌘Fで出した検索バー内でカーソルの移動ができないことに微妙に不便を感じていたので自分でVSCodeのkeybindings.jsonを触ってカーソル移動できるようにした。

ちなみに検索時にカーソル移動できないのはEmacsのデフォの挙動なので、キーマップ拡張が悪いとかいう話ではない。 キーマップ拡張自体はとても優れていると思う、心から感謝してる。

方法

まず「VSCodeでキーバインドを設定する。keybindings.jsonが無い時の対処法」通りに keybindings.json を開く。

次に以下のコードをコピーしてペタッと貼る。

[
    {
      "key":  "enter",
      "command": "editor.action.nextMatchFindAction",
      "when": "editorFocus && findWidgetVisible && !replaceInputFocussed"
    },
    {
      "key": "ctrl+a",
      "command": "",
      "when": "editorFocus && findWidgetVisible && findInputFocussed",
    },
    {
      "key": "ctrl+b",
      "command": "",
      "when": "editorFocus && findWidgetVisible && findInputFocussed",
    },
    {
      "key": "ctrl+e",
      "command": "",
      "when": "editorFocus && findWidgetVisible && findInputFocussed",
    },
    {
      "key": "ctrl+f",
      "command": "",
      "when": "editorFocus && findWidgetVisible && findInputFocussed",
    },
    {
      "key": "ctrl+n",
      "command": "",
      "when": "editorFocus && findWidgetVisible && findInputFocussed",
    },
    {
      "key": "ctrl+p",
      "command": "",
      "when": "editorFocus && findWidgetVisible && findInputFocussed",
    }
]

今回は自分がカーソル移動時によく使う ctrl+a, ctrl+b, ctrl+e, ctrl+f, ctrl+n, ctrl+p だけを設定した。 上記以外の高度なカーソル移動(ワード毎に移動とか)をご所望の際は同じように書けば動作するはず。

終わりに

あ〜〜〜〜〜〜ちょっとだけ楽になった。

今回の件でキーマップ拡張のコードとか読んだりしたけど、OSS作ってくれる人ってホント凄いね、感謝。

参考リンク