微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐