Vim でノーブレークスペースの置換文字を表示する

Vim でノーブレークスペースの置換文字を表示する

たとえば、それぞれ␣ (U+2423) や ⸤ (U+2E24) などの置換 Unicode 文字を使用して、No-Break スペース (U+00A0) と Narrow No-Break スペース (U+202F) を区別できるように、Vim で非標準のスペースを表示したいと思います。

調査した結果、私ができる最善の方法は、次のようにして、両方のノーブレーク スペース タイプに対して同じ置換文字を表示することでした。

:set list
:set listchars=tab:▸\ ,eol:¬,trail:\ ,nbsp:␣

したがって、listchars nbsp パラメータは、標準のノーブレーク スペースと狭いノーブレーク スペースを区別しません (ちなみに、適切に機能するには trail パラメータも必要です)。

これに対する回避策はありますか?

答え1

構文マッチングと を使用できますconceal:

set conceallevel=1
syn match NBSP '\%xa0' conceal cchar=␣
syn match NarrowNBSP '\%u202F' conceal cchar=⸤

効果:

ここに画像の説明を入力してください

を使用することもできますset conceallevel=2

concealカーソルがある行には置換は表示されません。concealcursor:

set concealcursor=n

関連情報