未だに直らない「VSCode で Markdown 執筆中に BackSpace・Delete キーを使うと制御文字が混ざる問題」の改善策

VSCode には謎のバグがある…。

VSCode で Markdown ファイルを執筆中、BackSpace キーや Delete キーで文字を消していると、時たま謎の制御文字が入力されることがあるのだ。

今回はこの事象の解説と、今できる改善策の紹介。

目次

どんな事象なの?

事象としては前述のとおり。BackSpace キーや Delete キーで文字を消している時に、時々制御文字が入力されることがある、というもの。初期設定では制御文字は画面に表示されないので、このまま文書を公開してしまって、別のビューアで見られた時に制御文字が化けて表示されたりして気が付く、ということが多い。

当該事象の GitHub Issues は以下。

VSCode がベースにしている Electron、の基盤である Chromium 由来の不具合だとか。

Chromium 側のバグフィックスは終わっているようだが、VSCode に取り込まれていない。

僕もかなり以前からこの事象は知っていて、本稿執筆時点の最新バージョンである v1.31.1 の Mac 版でもこの事象を確認できた。

とりあえず未だ直らないので、できる対策を紹介する。

制御文字を表示する

まずはエディタ設定を変更し、制御文字を表示するようにする。コレで制御文字が可視化できる。

"editor.renderControlCharacters": true,

大抵はコレを入れていれば、入力中に気が付くはずなので良いかと。

拡張機能で自動除去する

vscode-bs-ctrlchar-remover という拡張機能があり、コレを入れるとファイル保存時に制御文字を自動削除してくれる。

制御文字をウッカリ見落とした、とかいう時もコレで安心。

以上

未だ「秀丸エディタ」「Sakura エディタ」のような国産のエディタが重宝されるのも、ちょっと分かるかも。全般的には VSCode が便利なんだけど、日本語に対する処理があと一歩という感じ (この事象には IME を使用する中国語圏の人も困っているみたいだが)。

参考文献