如何在状态行中显示当前列?
阅读:h statusline
后,我发现%c
看起来很有前途,但很重要
字节而不是字符。我希望用字符分隔列,
不是字节。如果没有使用标签,则%v
有效。这是一个例子:
123 56789
“äå µåäö”
^ this is a tab
我想显示第一行中显示的数字。以下作品 对于第一到第三列,直到标签发挥作用。
:set statusline=%v
以下内容仅适用于第一行,但不适用于第二行。
:set statusline=%c
鉴于上述示例vim显示5
如果光标位于。{
第一行中的数字五,这就是我想要的。如果我向下移动一排
光标位于µ
我还想显示5
,%c
显示9
和%v
取决于tabstop
。
答案 0 :(得分:2)
我认为您必须在'statusline'
选项中使用表达式:%{<exp>}
。抓取线,将其修剪到光标列,用1字节字符替换所有字符,并计算字符串的长度:
:let &stl = "%{strlen(substitute(strpart(getline('.'), 0, col('.')), '.', 'x', 'g'))}"