Vim状态行:显示字符本身

3

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

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

1个回答

6

虽然没有预定义的项目(如:help 'statusline'中列出的那样),但是您可以使用自定义表达式(项%{...})来实现:

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

我使用:let代替:set,可以避免需要转义所有的空格;这样更易读。 getline('.')获取当前行,通过特殊的\%c原子匹配特定的列,从而获得光标下的字符;col('.')是当前列。然后用.匹配那里的字符,并用matchstr()提取它。

非常好的解决方案!运行得很好,这里有一个小改进,它会填充两个字符以处理宽度为两个字符的Unicode字符,并在落在空行时保留这两个空格。这样,表达式的长度始终保持为2,无论如何。let &statusline .= "%2.2(%{matchstr(getline('.'), '\\%' . col('.') . 'c.')}%)" - Hans Deragon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接