什么是 vim 的“设置标尺”命令的 vi 等价物?

Kev*_*ntu 12 vim vi

有没有办法在vi 中显示当前行和列的位置?在vim 中,我知道有set ruler命令,但是在使用vi时我有哪些选择?

Hub*_*bro 9

您可以按Ctrl+G在左下角临时显示一些有用的信息,包括光标的行号和列号、文件名等。


fsc*_*itt 8

您可以set number在每行的开头显示行号。但是,在原始 vi 中,似乎没有显示当前列的选项。

有一种方法可以至少将光标定位在特定列。不要25|将光标移动到当前行的25列位置。


Tho*_*key 5

原始 viruler与您在vim.

在原始 vi(例如 AIX、HPUX、Solaris)中,按controlG显示您所在的,但不显示,例如,

"shlib" [Read only] line 137 of 140 --97%-- 
Run Code Online (Sandbox Code Playgroud)

标尺模式最早是在elvis(参见如何在 vi 中在 80 列处画一条线)中引入的:

google 告诉我 elvis 在 1.5 版(1992 年 4 月 2 日)中添加了这个,作为参考,1.4 版是 1991 年 8 月 4 日。

它在 1.17(1992 年 4 月 20 日)和 1.24(1993 年 1 月 10 日)之间的 1.18 版(未注明日期)中添加到 vim:

VIM 1.18 - 删除所有行后屏幕未更新。现在读取文件()
            将光标放在第一个新行上。捕捉奇怪的磁盘标签。
            删除了无休止的“撤消行丢失”循环。使用空文件 'O' 会
            造成这个。在windexit() 中添加了窗口大小重置。刷新 .vim 文件
            仅当缓冲区已更改时。添加了来自
            Elvis 1.5:添加了“equalprg”和“ruler”选项。添加了引用。

nvi 最初是 elvis 的一个分支,并继承了此代码。有些人看到 nvi 正在运行并认为它是原始 vi。

vile 在3.57 版(1993 年 8 月 5 日)的更改中添加了标尺模式。因此,所有四种常见的 vi 克隆都提供了一种ruler模式。

使用垂直条到达特定列是一种解决方法(在快速检查中确实考虑了制表位)。

进一步阅读:vi like emacs - 常见问题