【VSCode】vim拡張が重い場合の対策
はじめに
VSCode の Vim 拡張の動作がもっさりしているので、現状できる対策について調べてみました。
Vim - Visual Studio Marketplace
Extension for Visual Studio Code - Vim emulation for Visual Studio Code
VSCode の Vim 拡張
VSCode の Vim 拡張は、VSCode 上で Vim をエミュレートする拡張になります。
しかし、この Vim 拡張を有効化すると、カーソルの移動や文字の入力(連続入力)がおそくなったりします。
2023/10/5 現在、Github の Issue で"slow"と検索すると、74 件の Issue がヒットしました。
その中でも、特にコメントが多かったのが下記の 2 つの Issue です。
Vim plugin slows vscode down. · Issue #2021 · VSCodeVim/Vim
If I turn vim plugin on (all other plugins off), vscode starts to lag. There is a noticeable delay (0.1 sec) on every keyboard input.
Vim gets very slow, the longer VSCode seems to be open · Issue #3957 · VSCodeVim/Vim
Describe the bug Since a few days / weeks vim has become incredibly slow for me, and it gets worse the longer vscode is open. Any mode change takes around 1s when vscode is open for 1h or so, and a...
現状の対策?
Issue を見てみると、相性の悪いプライグインを無効化、Vim 拡張の設定を変更するなどが見当たりましたが、私自身の環境では大した効果はありませんでした。
利用してる PC は 2GHz Quad-Core Intel Core i5 の MacBook Pro になります。ちなみに、もう一台 2.3GHz Quad-Core Intel Core i7 の MacBook Pro で同じ設定を動かしてみたところ、スペックの高い方がスムーズに動いていたので、単純にスペックが高い PC を使っていれば解決するかもしれません。
2023/10/5 現在、完全な解決策は出ていないようですが、下記の設定をsettings.json
に追加するというのが最新の解決策になりそうです。実際、私自身の環境でも多少の効果はありました。(それでも重いと感じますが)
1 "extensions.experimental.affinity": {
2 "vscodevim.vim": 1,
3 }
コマンドパレットから下記のコマンドを実行して、"local process #"と表示されていれば、設定が反映されています。
Developer: Show Running Extensions
また、Neovim 拡張に移行したというコメントもありました。こちらは、今後試してみたいと思います。
VSCode Neovim - Visual Studio Marketplace
Extension for Visual Studio Code - Vim mode for VSCode, powered by Neovim
参考
- Vim plugin slows vscode down. · Issue #2021 · VSCodeVim/Vim
- Vim gets very slow, the longer VSCode seems to be open · Issue #3957 · VSCodeVim/Vim
- Extensions using the "type" command (for ex. Vim) have poor performance due to being single-threaded with other extensions · Issue #75627 · microsoft/vscode
- Text entry lag and lost keypresses on v1.26.0 · Issue #8573 · VSCodeVim/Vim
- Vim - Visual Studio Marketplace