
Мне бы хотелось отображать нестандартные пробелы в Vim, чтобы можно было отличить неразрывный пробел (U+00A0) от узкого неразрывного пробела (U+202F), используя, например, заменяющие символы Unicode, такие как ␣ (U+2423) и ⸤ (U+2E24) соответственно.
После изучения вопроса лучшее, что я смог сделать, — это отобразить один и тот же символ замены для обоих типов неразрывных пробелов с помощью:
: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