![](/img/trans.png)
[英]How do I stop multiple line output from command substitution from being concatenated in BASH script?
[英]How can I stop VI from overlapping and hiding the last page of command line output?
目前,当我在屏幕内的终端窗口中启动vi时,vi程序占用整个屏幕并覆盖那里的任何输出历史记录,然后在退出时保持在那里。 因此,当稍后向后滚动我的终端输出时,vi窗口下的输出被屏蔽。
我目前在我的bashrc中使用以下别名解决这个问题...
alias vi='for i in $( seq 1 $LINES ); do echo ; done ; vi'
到目前为止,这种方法运作得很好,但它让我感觉很糟糕,我担心我会遇到一种不可预见的情况,它会在某些时候让我失望。 我想知道是否有vi或屏幕的命令选项或其他更简单,更有效的方法来实现相同。
谢谢。
如果您使用GNU Screen,.screenrc中的以下行应该可以解决问题:
altscreen on
这将确保在您退出Vi后恢复旧内容,并且它不会再混乱您的回滚历史记录。
尝试将set t_ti= t_te=
添加到.vimrc文件中。
要修复显示此行为的less,请在.bashrc文件中设置export LESS=-X
。
注意:某些终端(如urxvt)能够使用如下设置全局修复所有ncurses程序: urxvt*secondaryScreen: false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.