Vim:状态行如何';%V';工作
这里有一个Vim问题,我还没有找到答案。Vim:状态行如何';%V';工作,vim,statusline,Vim,Statusline,这里有一个Vim问题,我还没有找到答案。%Vstatusline变量的作用是什么 我查看了我能找到的文档,但不太清楚,我知道它显示了虚拟列,但是-前面的数字/字母是什么意思 例如,以下各项的含义是什么 0-1 17-18 等等,从我能管理的,同时找到这些例子。-前面的数字是最后一个实数列,换句话说是实数列。这是正确的吗 谢谢你的帮助 在Vimstatusline中,在您可以设置的众多标志中,有: %c--列号,即字节号 %v和%v虚拟列号,即屏幕上的列号 那么,实际列数和虚拟列数之间的区别
%V
statusline变量的作用是什么
我查看了我能找到的文档,但不太清楚,我知道它显示了虚拟列,但是-
前面的数字/字母是什么意思
例如,以下各项的含义是什么
0-1
17-18
等等,从我能管理的,同时找到这些例子。-
前面的数字是最后一个实数列,换句话说是实数列。这是正确的吗
谢谢你的帮助 在Vim
statusline
中,在您可以设置的众多标志中,有:
--列号,即字节号%c
和%v
虚拟列号,即屏幕上的列号%v
%c%V
如帮助中所述,显示虚拟列编号的%V标志只有在与实际列编号不同时才会打印(前面有一个破折号)。因此,通常情况下,您的状态行只显示实际列号(例如,8
),但如果您在一行中使用制表符或多字节字符,您将看到两个数字(例如,1-8
)
例如,尝试以下方法:
echo -e "\tHello world." > /tmp/test
然后,在Vim中打开/tmp/test
,注意您的状态行,它指示实列和虚列之间的差异。如果将tabstop
设置更改为其他值,则虚拟列将更改
最后,如果您
:设置expandtab
并执行:retab
,则虚拟列指示器将隐藏。第一个数字不是%V
的一部分,很可能是%c
。谢谢@romainl,就是这样。+1。虽然从我的理解来看,这并不清楚,但它并没有回答我的问题。我的问题是-
前面的数字是什么。尽管如此,@romainl为我回答说,是%c
在%V
之前。无论如何,谢谢你的回答和时间,我会接受你的回答,因为这是唯一的答案。:)@EDU列和虚拟列之间的差异不包含在选项卡中。还有其他示例:“
UTF-8中表示的字符占用3列(3字节:E2 80 9C),但仅占用1个虚拟列。A代码>(全宽拉丁文大写A)占用3列(UTF-8)和2列虚拟列(全宽!)。正如您所看到的“虚拟列编号是当前列编号的近似值,就像您使用空格而不是制表符一样”是完全错误的语句,虚拟列编号是某些字符结束的显示单元的编号(官方:“文件位置的屏幕列”).Ah我看到@ZyX,我想这只适用于可变宽度字体?还是同样适用于单间距字体?此外,没有近似值,它总是给出精确的值。vim中的列是字节偏移量,它们与显示列无关。@Eduan全宽字符在单间距字体中占据两个显示单元格。