11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeの全角スペースハイライトを特定のファイルでOFFにする

Last updated at Posted at 2021-12-11

2021/12/08にリリースされたVSCodeの version 1.63 で、全角スペースがハイライトされるようになっていました。

とても便利ですが、テキストファイル等で普通に全角スペースを使いたいこともあるので、特定のファイルで機能を無効にする設定を調べました。

スクリーンショット 2021-12-11 7.59.06.png

(画像で使用している"Ricty Diminished"フォントでは全角スペースが○として表示されるため、余計にハイライトが目立ちます)

特定のファイルでOFFにする設定

1. settings.json を開く

mac: command + ,, win: Ctrl + , で設定画面を開き、右上のアイコンをクリックするなどで開きます。

スクリーンショット 2021-12-11 8.07.46.png

2. 設定を記載

.txt.text ファイルでOFFにする場合は以下のように追記します。

"[plaintext]" の中に入るファイル種類については、 "[" のように途中まで入力した段階で候補が表示されます。

settings.json
{
  "[plaintext]": {
    "editor.unicodeHighlight.invisibleCharacters": false, // ハイライト機能を全てOFFにする場合
    "editor.unicodeHighlight.allowedCharacters": { // 特定の文字でのみOFFにする場合
      " ": true
    }
  }
}

以上で設定完了です。(もしかしたらもっと簡単な方法もあるかもしれません)

全てのファイルでOFFにする設定

全てのファイルでハイライトをOFFにしたい場合は、上記の設定を "[plaintext]" の中にネストさせずに記載します。

そもそもこの場合は、ハイライト部分にマウスオーバーすると表示される Adjust settings をクリックして設定を選ぶことで、自動で上記の設定が settings.json に追記されます。

スクリーンショット 2021-12-11 8.32.35.png

余談

リリースノート を見たところ、この機能は、意図せず全角スペースが紛れ込むことの防止よりも、見えない文字を意図的に使った攻撃を防ぐ目的があるようです。

以下の記事では、ハングルの空白文字にあたる \u3164 が、JavaScriptの変数として使用できることを利用した攻撃例がわかりやすく紹介されていました。

以下のような変なコードも、ハイライトのおかげで、\u3164)が変数として使われている事が分かります。

スクリーンショット 2021-12-11 8.58.50.png

11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?