Ersatzzeichen für geschützte Leerzeichen in Vim anzeigen

Ersatzzeichen für geschützte Leerzeichen in Vim anzeigen

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:

Bildbeschreibung hier eingeben

Sie können auch verwenden set conceallevel=2.

concealErsetzungen werden in der Zeile, in der sich der Cursor befindet, nicht angezeigt. Für diesen Satzconcealcursor:

set concealcursor=n

verwandte Informationen