
Ich möchte nicht standardmäßige Leerzeichen in Vim anzeigen, damit ich geschützte Leerzeichen (U+00A0) von engen geschützten Leerzeichen (U+202F) unterscheiden kann, indem ich beispielsweise Unicode-Ersatzzeichen wie ␣ (U+2423) bzw. ⸤ (U+2E24) verwende.
Nach der Untersuchung war das Beste, was ich tun konnte, die Anzeige desselben Ersetzungszeichens für beide geschützten Leerzeichentypen durch die Verwendung von:
:set list
:set listchars=tab:▸\ ,eol:¬,trail:\ ,nbsp:␣
Der Listchars-NBSP-Parameter unterscheidet also nicht zwischen standardmäßigen und engen geschützten Leerzeichen (und er benötigt übrigens auch den Trail-Parameter, um richtig zu funktionieren).
Gibt es dafür eine Problemumgehung?
Antwort1
Sie können Syntaxübereinstimmung verwenden und conceal
:
set conceallevel=1
syn match NBSP '\%xa0' conceal cchar=␣
syn match NarrowNBSP '\%u202F' conceal cchar=⸤
Die Wirkung:
Sie können auch verwenden set conceallevel=2
.
conceal
Ersetzungen werden in der Zeile, in der sich der Cursor befindet, nicht angezeigt. Für diesen Satzconcealcursor
:
set concealcursor=n