Mostrar caracteres de reemplazo para espacios sin interrupciones en Vim

Mostrar caracteres de reemplazo para espacios sin interrupciones en Vim

Me gustaría mostrar espacios no estándar en Vim para poder distinguir el espacio sin interrupción (U+00A0) del espacio estrecho sin interrupción (U+202F) usando, por ejemplo, caracteres Unicode de reemplazo como ␣ (U+2423) y ⸤ (U+2E24) respectivamente.

Después de investigar, lo mejor que pude hacer fue mostrar el mismo carácter de reemplazo para ambos tipos de espacios sin interrupciones usando:

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

Por lo tanto, el parámetro listchars nbsp no diferencia el espacio sin interrupción estándar y estrecho (y, por cierto, también necesita el parámetro trail para funcionar correctamente).

¿Existe alguna solución para esto?

Respuesta1

Puede utilizar la coincidencia de sintaxis y conceal:

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

El efecto:

ingrese la descripción de la imagen aquí

También podrías usar set conceallevel=2.

conceallos reemplazos no se muestran en la línea en la que está el cursor. Para ese conjuntoconcealcursor:

set concealcursor=n

información relacionada