为什么vim会隐藏包裹的行并打印多个@s?

时间:2014-02-22 14:42:07

标签: vim

默认情况下,vim会换行,但如果它们很长,您最终可能会在屏幕上看到@个字符。这个功能的名称和目的是什么?

2 个答案:

答案 0 :(得分:6)

:help 'display'

    lastline        When included, as much as possible of the last line
                    in a window will be displayed.  When not included, a
                    last line that doesn't fit is replaced with "@" lines.

您可以使用:set display+=lastline在窗口中显示尽可能多的内容

答案 1 :(得分:5)

我不知道该功能的名称,但它是原始Unix版本的vi编辑器的延续。当包裹的线太长而无法显示时,“@”线将出现在显示缓冲区的末尾,此时线的一部分将出现在屏幕外。 IIRC(自从我使用这个特定功能已有30年),它也用于延迟加载长行直到你需要它们,即使它们完全可见。

回到300波特调制解调器时代,等待填充四到五条物理线路的逻辑线路将令人沮丧。根据您的配置方式,vi会推迟加载行,直到光标到达它们为止。只有这样它才会将线加载到显示缓冲区中。当您确切知道需要编辑哪一行时,这会大大加快编辑速度。如果文件中的第2行和第3行非常长,并且您知道何时打开需要编辑第5行的文件,则可以打开该文件,然后键入5G以转到目标行而无需等待中间加载。

还有一个选项可以将24行显示器的可用部分减少到较小的数量,这样您就可以模拟一个屏幕,例如只有10条物理显示行。这也用于加速慢速连接的编辑。