はじめに

概要

WindowsのWSL2でVisual Studio Codeを開いて日本語入力していると、 文字が二重で入力されたり違う場所に入力されたりする問題が頻繁に発生していました。 今回はこの問題を解決方法を軽く調査してみます。

原因かも?

原因は特定できていませんが、Geminiに聞いたところ、Visual Studio Codeの場合、 Vimの拡張機能(Vimのキーバインドを使用するやつ)を入れていると入力が不安定になるかもとのことです。 ちゃんと調べられていないのですが、 たしかにVimの拡張機能が原因で不具合が起きることが前にもあったので、 ひとまずVimの拡張機能まわりで対処方法を調べてみます。

開発環境

  • Windows 11
  • WSL2 / Ubuntu 24.04
  • Visual Studio Code 1.106.3

発生している問題

WSL2から開いたVisual Studio Codeで日本語入力時に文字が二重で入力されたり違う場所に入力されたりする。 特に漢字の変換時におかしくなる気がするが、うまく再現しないのでよく分かっていない。

解決方法1

ひとまずVimの拡張機能を無効にしてみる方法があります。 Visual Studio Codeでは拡張機能をアンインストールしなくても無効にできるので、 とりあえず無効にしてみてから日本語入力が安定するか確認してみるとよさそうです。

ちなみに私の環境ではVimの拡張機能を無効にしたら普通に日本語入力が安定している気がします。

解決方法2

Vimの拡張機能が有効になっている状態で、settings.jsonに下記を追加します。

"vim.autoSwitchInputMethod.enable": false

この設定でVimのモード切替時に自動で日本語入力と英数字入力の切り替る機能をオフにできます。 どうやら入力の不安定さはWindowsとUbuntuの連携がうまく取れていないことが原因になっている可能性があるっぽいです。 今回の入力モードの自動切り替えのような便利機能が現在の状態を監視する時にOS間でうまく同期が取れずに入力が不安定になるみたいな感じです。

私の環境だとこの設定を行って今のところ安定して入力できています。 とはいえ不具合をうまく再現できていないので本当に効果があったのかイマイチ分からない状態ではあります。

おわりに

長い間困っていた問題について調べてみました。 なぜか今は調子がよくて日本語を安定して入力できてしまっているので、 問題が解決したのかどうかよく分からず意味のない記事になってしまった気もしますが、 とりあえず記録として残しておきます。 そもそもOS側かVisual Studio Code側かVimの拡張機能側のアップデートで修正された可能性もあります。 どちらにせよ日本語入力が安定していれば良いかと思います。 それでは、また。