VS Code で VSCodeVim v1.26.0 プラグインを利用時に文字変換が変な挙動になったときの対処方法

v1.26.1 で問題が解消されました
2023.09.18

VS Code で Vim のプラグイン(VSCodeVim)を利用時に、文字変換が以下の状態になったときの対処方法を紹介します。

  1. 文字を入力し変換したあとに後続の文字を入力
  2. 後続の文字列を入力した際の 1 文字目が変換した文字列の前後に挿入される

「変換がおかしなことに」と入力すると「g変換gnおかしなことn」となっている様子です。

動画を切るタイミングが早くて最後の「n」が前後に挿入する様子はわかりにくくなってしまいました。

この状況を言葉で説明するのが難しく、類似した事象を見つけるのに苦労したため共有します。

対処方法早見

原因

VS Code の拡張プラグイン VsCodeVim が原因でした。以下のリンクが本事象の Issue です。

korean typing error · Issue #8577 · VSCodeVim/Vim

ワークアラウンド

Issue 内のコメントの対処方法で改善しました。

VsCodeVim プラグインを問題が確認される前のバージョンへダウングレード(バージョン指定でインストール)します。

code --install-extension vscodevim.vim@1.25.2

2023/10/12 追記
v1.26.1で問題が解決されました

v1.26.1 が 2023 年 10 月 10 日にリリースされ、謎の文字変換現象が解消されました。

v1.26.0 を避けるワークアラウンドではなくバージョンアップをオススメします。

私の環境

  • VSCodeVim version: 1.26.0
  • VS Code version: 1.82.2
  • OS: macOS 13.4.1

切り分けの過程

2023 年 9 月 14 - 15 日頃に VS Code 上で文字変換時に謎の変換が発生するようになりました。日中は切り分けする時間がなくテキスト編集は Vim を使ってしのいでいました。

謎の変換は VS Code でのみ発生していたため、当初は VS Code の問題だと思い VS Code の入れ直し、設定初期化などいろいろ試しましたがまったく改善しませんでした。VS Code 上で変換がうまくいかないという事象はググれば情報があったのですが、どれもこれも今回のケースと同じものがなく適切な情報収集ができませんでした。

次に日本語変換の問題かと思い Google 日本語変換を使用しているため、こちらもいろいろと試しましたが改善しませんでした。

やることがなくなり VS Code を完全に初期化して、真っ先に VSCodeVim をプラグイン入れて気がつきます。Vim プラグインを有効にすると謎の変換が発生することに

プラグインは自動アップデートする設定でしたので、どうやら VSCodeVim version 1.26.0 にアップデートされたタイミングで本事象が発生するようになったものと思われました。

Release v1.26.0 · VSCodeVim/Vim

Issue を漁っているとタイトルと、本文でハングル文字の例から同じ事象かいまいちわからなかったのですが、他言語でも同様とコメントあり、やっと同じ症状を確認できました。ここにたどり着くまでにだいぶ時間がかかりました。。。

korean typing error · Issue #8577 · VSCodeVim/Vim

コメントで案内されている通り、問題が発生する前のバージョン(1.25.2)へダウングレードする対処方法を試し改善されました。ついでに、プラグインの自動アップデートを無効化にしました。

おわりに

謎の変換現象を言葉で説明するのが難しく、どう検索したら良いのかわからず情報収集に難航しました。同じ症状でお悩みの方はお試しください。

VS Code でも Vim のキーバインドではないと暮らしていけない Vimmer の方々のトラブルシュートの一助になれば幸いです。