Vim 中右下角的数字

And*_*ech 6 vim

在 vim 编辑器的右下角,有 2 个数字以下列格式显示行号和列号:

495,30 
Run Code Online (Sandbox Code Playgroud)

但在某些行上,使用这种格式:

496,9-30
Run Code Online (Sandbox Code Playgroud)

上面的格式-是什么意思?光标仍在列上,30但那是什么9

Joh*_*n T 8

它指的是相对于特殊字符(即:制表符)的光标位置。

假设你的屏幕是这样的(小屏幕,我知道):

1 xxxxxxxxxx - - - - - - - - - - - - - - 
2 - - - - - - - - - - - - - - - - - - - - - - - -
3 - - - - - - - - - - - - - - - - - - - - - - - - 
4 - - - - - - - - - - - - - - - - - - - - - - - -
5 - - x --- --- --- x
6 - - - - - - - - - - - - - - - - - - - - - - - -
7 - - - - - - - - - - - - - - - - - - - - - - - -
8 xxxxxxxxxxxxxxxxxxxxxxxx

任何单个字符(Unicode 除外)= 1 个字节
3 个附加行 (---) = Tab = 1 个字节
1 个空格 (-) = 1 个字节

Tab 被配置为显示超过 8 列。

如果光标在第 1 行的最后一个 X 上,Vim 将显示 1,10。如果它在第 5 行的第一个 X 上,它将显示 5,3。第 8 行中的最后一个 X 代表 8,25。但是,由于第 5 行的第二个 X 被 3 个 Tab 序列分隔,如果您的光标位于最后一个 X 上,它将显示 5,7-25。

  • 前5显然是行号
  • 7 代表列中的字节数(2 个空格,一个 x,3 个制表符,最后一个 x = 7)
  • 25 代表您在控制台中看到的列。使用 25 个空格将与 2 个空格、一个 x、3 个制表符和另一个 x 位于相同的位置。如您所见,第 8 行中的第 25 个 X 与第 5 行中的最后一个 X 对齐。


Law*_*uez 5

从 Vim 的“options.txt”帮助页面(重点是我的):

如果显示的字符数与文本中的字节数不同(例如,对于 TAB 或多字节字符),则同时显示文本列(字节数)和屏幕列,并用破折号分隔。

对于空行,显示“0-1”。

对于空缓冲区,行号也将为零:“0,0-1”。

例如,如果一行的第一个字符是一个制表符,而 Vim 被配置为在 8 列上显示制​​表符,您的标尺会显示 1-8,因为制表符仍然只有一个字节,但您的光标将位于第 8 列.

在浏览包含扩展 Unicode 字符的文件时,您会看到类似的情况,因为它们需要一个以上的字节来存储,但仍然只使用屏幕上的一列。