【VSCode】vim拡張が重い場合の対策

2023.10.05
2024.03.24
開発環境
vimVSCode

はじめに

VSCode の Vim 拡張の動作がもっさりしているので、現状できる対策について調べてみました。

Vim - Visual Studio Marketplace

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

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

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

VSCode Neovim - Visual Studio Marketplace

Extension for Visual Studio Code - Vim mode for VSCode, powered by Neovim

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee