🎃

VSCode Neovim Extension の jj が変わったっぽい

2024/05/04に公開

GW に VSCode を開いたら jj が使えなくなっていた😢
対応を調べたので書く。

TL;DR

  • settings.json に以下を書く
settings.json
{
    "vscode-neovim.compositeKeys": {
        "jj": {
            "command": "vscode-neovim.escape"
        }
    }
}

いつ変わった?

2024/4/30 に VSCode Neovim Extension の v1.11.0 がリリースされ、そこで破壊的変更がされたっぽい。

これまでの jj

これまでは keybindings.json に以下のように書くことで jj による Escape を実現していた。

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

何が変わった?

以下の PR が対応する。

https://github.com/vscode-neovim/vscode-neovim/pull/1917

実装を知らないのでよくわからないが、 Composite key の入力が良くなったらしい。
そして、これまでの Escape コマンドが削除されたようだ。

Removed commands: vscode-neovim.compositeEscape1 vscode-neovim.compositeEscape2

どうする?

これまでは keybindings.json に設定を書いていたが、これからは settings.json に以下のように書けば良いみたい

settings.json
{
    "vscode-neovim.compositeKeys": {
        "jj": {
            "command": "vscode-neovim.escape"
        }
    }
}

Escape & Save の jk も例として書かれていた。

settings.json
{
    "vscode-neovim.compositeKeys": {
        "jk": {
            "command": "vscode-neovim.lua",
            "args": ["vim.api.nvim_input('<ESC>')\nrequire('vscode-neovim').action('workbench.action.files.save')"]
        }
    }
}

おわり!

Discussion