Vim statusline: 显示角色本身

Vim statusline: show the character itself

有没有办法在状态栏中显示光标下的字符?

我已经使用%b\ (0x%B)来显示字符的十进制和十六进制值。我也想在这两个之前显示字符本身。

没有预定义项(如 :help 'statusline' 下所列,但您可以使用自定义表达式(项 %{...})实现:

let &statusline .= "%{matchstr(getline('.'), '\%' . col('.') . 'c.')}"

(我使用 :let 而不是 :set 以避免必须转义所有空格;这样可读性更好。)

getline('.')获取当前行,通过匹配某列的特殊\%c原子获取光标下的字符; col('.') 是当前列。 . 然后匹配那里的字符,matchstr() 提取它。