VSCodeのVimプラグインが重いと感じた時に行った設定

# 概要
普段、VSCodeのVimプラグインを使って開発しているが、どうにも動作が遅いと感じた。
特に、大きめのファイルにおいて文字入力するともっさりするというか、
文字をタイプして、いくらか間を置いてから動作が行われるような感覚があった。

その時に設定を見直したら、ある程度マシになったので同種で困っている人のためにメモを残しておこうと思う。

# 結論
- Bracket Pair Colorizer のプラグインを2系から1系に戻した
- 各種設定を見直して、描画負荷のかかりそうなところの実行を切ったり間引いたりした

```setting.json
{
    "editor.minimap.enabled": false,
    "editor.quickSuggestionsDelay": 600,
    "indentRainbow.updateDelay": 800,
    "bracketPairColorizer.timeOut": 800,
    "cSpell.spellCheckDelayMs": 200,
}
```
間引く系の設定は `editor.quickSuggestionsDelay` 以外は入れているプラグインによって異なるはずなので、各々確認すること。

# 内容
## Bracket Pair Colorizer のプラグインを2系から1系に戻す
GitHubのIssueを追うと、 `Bracket Pair Colorizer2` のプラグインを併用していると遅くなる、という情報があった[^1]ので、これを2から1に戻したらかなり快適になった。
特に日本語入力環境においてあまりにも違いが出たので、それぞれの入力の様子を以下に貼っておく。

### Bracket Pair Colorizer2を併用した場合
実際には連続でタイピングしているにも関わらず、Enterで確定したポイントで入力がとぎれとぎれになる。
![VSCodeVim_with_bracket_pair_colorizer_2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/3bd6cfe5-0aa9-96be-00ad-88aa0af0d52a.gif)

### Bracket Pair Colorizer (オリジナル版)を併用した場合
特に問題なくスムーズに入力できた。
![vsCodeVim_with_bracket_pair_colorizer_original.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/1dd082ec-3cf3-43a2-e360-b82fd7c43eab.gif)

よって、VSCodeの利用プラグイン一覧からBracket Pair Colorizer 2の方はアンインストールし、オリジナル版の方をインストールし直した。

Bracket Pair Colorizer (オリジナル版)は以下からインストールできる。
[Bracket Pair Colorizer \- Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer)

## 各種設定の見直し
設定を見直して、遅くなっていそうなところで不要な項目は切ったり間引いたりした。
主にやったことは以下の2つ。

* ミニマップをオフにする
* 他のプラグインの `**Delay` や `**timeOut` 系の設定値を調整する

### ミニマップをオフにする
```setting.json
{
    "editor.minimap.enabled": false,
}
```
デフォルト設定のまま使っていたのでミニマップが表示されていたが、これをオフにすることで少しだが入力がもたつかなくなった。
特に、deleteキーで文字を削除する時のカクつきが和らいだように感じた。
現状ミニマップを有効利用していなかったので、オフにした。

### 他のプラグインの `**Delay` や `**timeOut` 系の設定値を調整する
設定に `"editor.quickSuggestions": false` を記述すると良い、という情報があった[^2]ため、
そのように設定すると、確かに動作が快適になった。

だが、Suggestionsを切ってしまうのは自分にとって使いづらくなってしまうので、
妥協案として表示されるまでの時間間隔に少し間を置くことで、入力直後のカクつきを和らげることにした。

```setting.json
{
    "editor.quickSuggestionsDelay": 600,
}
```

またどれくらい効果があるかは正直わからないが、
各プラグインの実行タイミングについても、遅くしても問題ないものは少し遅くしておいた。

設定項目は各プラグインによって異なるので、
ショートカット `⌘ ,` (Macの場合) で設定画面を開き、 上部のsearch settings のところに delay やら time やらのキーワードで入れて検索、間引いたほうが良さそうなものを一つづつ確認しながら手動で設定していった。

![vscode_settings.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/128450a9-0e33-8580-ef3e-838202cab566.png)

自分の場合は、以下を設定するとまぁまぁいい感じに思えたので設定しておいた。

```setting.json
{
    "indentRainbow.updateDelay": 800,
    "bracketPairColorizer.timeOut": 800,
    "cSpell.spellCheckDelayMs": 200,
}
```

## その他
`"vim.statusBarColorControl": false` を加えると良い、という内容の記載もあったが
自分の環境では特に記述しなくてもデフォルトで `false` となっているようだったので設定には加えなかった。

## 感想
そもそも導入しているプラグインの数多すぎでは? という話はあるように思うが、
どれも自分にとっては開発を助けてくれる、必要なツールだった。
これを機会にそれぞれの設定を見直して、快適でよくばりな環境に整えられてよかった。

[^1]: [VSCodeVIM is unusable \(incredibly slow\) on larger files, especially in INSERT MODE · Issue \#2216 · VSCodeVim/Vim](https://github.com/VSCodeVim/Vim/issues/2216)
[^2]: [VSCode \+ Vim Plugin が異常に重くなる件の対処法 \| kohsweblog](https://blog.koh.dev/2019-10-13-vscode-vim/)