如何在vim的状态栏中显示当前列?

Jon*_*nas 247 vim statusbar

我想在状态栏中显示当前列,这在许多其他文本编辑器中很常见。例如,很高兴知道您是否在第 80 列或以上。

如何在状态栏中显示当前列?

Bir*_*rei 279

尝试设置 'ruler' 选项是否符合您的要求。在我的电脑右下角显示了我有光标的行和列。

:set ruler
Run Code Online (Sandbox Code Playgroud)

编辑评论

在 vim (command :help ruler)的帮助下:

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

您可以尝试使用rulerformat选项更改它,例如:set rulerformat=%l,%v

  • 62 是将制表符计为一个字符,68 是将扩展制表符计为一个字符 (8认同)
  • @Jonas 正如 RedGrittyBrick 所说,不仅是制表符,还包括字符与字节。这在 UTF-8 文件中非常明显,其中单字符字形具有多字节代码点。例如,拉丁语 eñe(上面有波形符的 n,发音为 EN-yea)是单字符字形,但需要两个字节来表示代码点 (\xC3B1),三分之一 (1/3) 是单字符字形具有三字节代码点 (\xE28593)。 (2认同)

rom*_*inl 37

有关:help statusline可用的许多选项,请参阅。

~/.vimrc在一堆其他指令之间有这个:

set statusline+=col:\ %c,
Run Code Online (Sandbox Code Playgroud)

哪个输出

col: 64
Run Code Online (Sandbox Code Playgroud)

在我的状态栏。

我没有set ruler

  • Jonas,您可能必须在 .vimrc 中使用 ``set laststatus=2`` 来始终显示状态行。(0 -> 从不显示状态行,1 -> 仅当至少有两个窗口时, 2 -> 始终显示状态行)。 (4认同)

Pet*_*ter 32

另一种方法是执行'g Ctrl-G',它以五种方式打印光标的当前位置:列、行、字、字符和字节。(来自http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G


ma1*_*w28 19

或者,保持 'ruler' 未设置,提高性能,并在您想查看当前列时按CTRL-G

  • 按 Ctrl-Anything 听起来不像是性能提升。我们正在输入字符。没有人的手指和眼睛飞得足够快,可以看到这种性能差异。 (6认同)

Gio*_*ocu 16

我会贬低使用设置标尺,因为我相信它与状态行选项不兼容,例如,如果您将状态行设置为与设置标尺结合显示完整文件路径

set statusline+=%F

set ruler

然后它不显示列号,而只显示状态栏中的完整文件路径。但是,如果您将以下内容放入 .vimrc

set statusline+=%F\ %l\:%c

它将正确显示所有内容,即

[文件路径/文件名] [行号]:[列号]


小智 5

对于正在寻找这个答案并且不习惯使用 VIm 的其他人,我个人找到的最简单的答案是将此行添加到您的主目录中的 .vimrc 文件的末尾:

set ruler