Exibir caracteres de substituição para espaço sem interrupção no Vim

Exibir caracteres de substituição para espaço sem interrupção no Vim

Eu gostaria de exibir espaços não padrão no Vim para poder distinguir o espaço No-Break (U+00A0) do espaço Narrow No-Break (U+202F) usando, por exemplo, caracteres Unicode de substituição como ␣ (U+2423) e ⸤ (U+2E24) respectivamente.

Depois de investigar, o melhor que pude fazer foi exibir o mesmo caractere de substituição para ambos os tipos de espaço sem interrupção usando:

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

Portanto, o parâmetro listchars nbsp não diferencia espaço no-break padrão e estreito (e também precisa do parâmetro trail para funcionar corretamente, aliás).

Existe alguma solução alternativa para isso?

Responder1

Você pode usar correspondência de sintaxe e conceal:

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

O efeito:

insira a descrição da imagem aqui

Você também pode usar set conceallevel=2.

concealas substituições não são mostradas na linha em que o cursor está. Pois, esse conjuntoconcealcursor:

set concealcursor=n

informação relacionada