在 Vim 中顯示不間斷空格的替換字符

在 Vim 中顯示不間斷空格的替換字符

我想在 Vim 中顯示非標準空格,以便透過使用例如替換 Unicode 字元(如 ␣ (U+2423))來區分不間斷空格 (U+00A0) 和窄不間斷空格 (U+202F)和⸤ (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

相關內容