如何阻止VI重叠并隐藏命令行输出的最后一页?

Cos*_*sta 4 vi vim bash gnu-screen

目前,当我在屏幕内的终端窗口中启动vi时,vi程序占用整个屏幕并覆盖那里的任何输出历史记录,然后在退出时保持在那里.因此,当稍后向后滚动我的终端输出时,vi窗口下的输出被屏蔽.

我目前在我的bashrc中使用以下别名解决这个问题...

alias vi='for i in $( seq 1 $LINES ); do echo ; done ; vi'

到目前为止,这种方法运作得很好,但它让我感觉很糟糕,我担心我会遇到一种不可预见的情况,它在某些时候会让我失望.我想知道是否有vi或屏幕的命令选项或其他更简单,更有效的方法来实现相同.

谢谢.

Ada*_*tek 6

如果您使用GNU Screen,.screenrc中的以下行应该可以解决问题:

altscreen on
Run Code Online (Sandbox Code Playgroud)

这将确保在您退出Vi后恢复旧内容,并且它不会再混乱您的回滚历史记录.