🙈

vscode neovim 必須級キーバインド4選

2021/12/27に公開

vscode neovimを使っている人向けです
基本的にはvscodeのコマンドをvimっぽく呼び出してる感じ
https://github.com/asvetliakov/vscode-neovim
vscode neovimを使う上で必須級のキーバインドを4つ紹介しようと思います。

  • jjでインサートモードからエスケープ
  • 定義ジャンプ
  • バック(NavigationBack)
  • ホバー

設定はkeybindings.jsonに記入していきます

jjでインサートモードからエスケープ

これはvimを使っている人なら欠かせません
公式のREADMEから引用しています
ただ、挙動がおかしくなるときもあるので改善策があったらコメントお願いします!!

keybindings.json
    {
        "command": "vscode-neovim.compositeEscape1",
        "key": "j",
        "when": "neovim.mode == insert && editorTextFocus",
        "args": "j"
    },

定義ジャンプ

みんな大好き定義ジャンプ

keybindings.json
    {
	"key": "space d",
	"command": "editor.action.goToDeclaration",
	"when": "neovim.mode == normal && editorTextFocus",
    },

バック

定義ジャンプする前の場所に戻れます

keybindings.json
    {
        "key": "space b",
        "command": "workbench.action.navigateBack",
        "when": "neovim.mode == normal && editorTextFocus",
    },

ホバー

keybindings.json
    {
        "key": "space h",
        "command": "editor.action.showHover",
        "when": "neovim.mode == normal && editorTextFocus",
    },

おまけ

cmd+sでファイル保存しているとカーソル下の文字が消えることがあったので、space sにファイル保存を割り当てちゃいました

keybindings.json
    {
        "key": "space s",
        "command": "workbench.action.files.save",
        "when": "neovim.mode == normal && editorTextFocus",
    },

最後に

すべてまとめたものを貼っておきます

keybindings.json
[
    {
        "command": "vscode-neovim.compositeEscape1",
        "key": "j",
        "when": "neovim.mode == insert && editorTextFocus",
        "args": "j"
    },
    {
        "key": "space d",
        "command": "editor.action.goToDeclaration",
        "when": "neovim.mode == normal && editorTextFocus",
    },
    {
        "key": "space b",
        "command": "workbench.action.navigateBack",
        "when": "neovim.mode == normal && editorTextFocus",
    },
    {
        "key": "space h",
        "command": "editor.action.showHover",
        "when": "neovim.mode == normal && editorTextFocus",
    },
    {
        "key": "space s",
        "command": "workbench.action.files.save",
        "when": "neovim.mode == normal && editorTextFocus",
    },
]

Discussion