bash – vim上的GNU屏幕清除,更少等.出口

前端之家收集整理的这篇文章主要介绍了bash – vim上的GNU屏幕清除,更少等.出口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对屏幕很新,但根据我在互联网上找到的各种建议配置了我的〜/ .screenrc文件.我有一个问题虽然我很确定可以很容易地解决;我认为这是一个termcap设置..?

在独立bash中使用less,vim,top或其他程序(在Mac OSX 10.6上)后,退出这些程序后,终端的缓冲区将清除,当前命令行上方的行将是我输入的上一个命令.
但是,有了屏幕,当我退出任何这些程序时,屏幕缓冲区将无法清除/刷新,我仍然会看到我在该程序内部看到的内容..有意义吗?

例如在独立的bash(没有屏幕): –

hostname:~ auser$vim afile 
[do stuff in file,then :q to exit]

退出后我会看到: –

hostname:~ auser$vim afile 
hostname:~ auser$

但在屏幕上: –

bash-3.2$vim afile
[do stuff in file,then :q to exit]

退出后,我会看到整个屏幕: –

~  # [Empty lines in vim are represented by these tilda characters. ]
...
~  # [ Every line on the screen is one of these tildas ]
bash-3.2$  # [ This is the bottom line in the terminal ]

我希望这有点道理.
任何&所有人都非常感谢! TIA

答案在于您正在使用的“真实”终端和通过屏幕呈现给应用程序的终端的终端功能.通过屏幕执行终端I / O的应用程序可以看到屏幕类型的终端.你的“真实”终端可能是从xterm到vt100的任何东西. (使用printenv TERM或同等版本查找.)

像vim这样的TUI应用程序可以根据他们发现自己正在与之交谈的终端来定制他们的行为.这个答案对于终止机制的机制的详细阐述来说太短了,甚至对于像vim和less这样的程序如何利用它的机制也是如此.关于这些东西有完整的书籍.一个非常简短的说法是,您的“真实”终端正在宣传屏幕终端不具备的功能.

另外,当然,这已经在SuperUser上得到了详细的回答,herehere以及here.

猜你在找的Bash相关文章