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.

相关文章

普通模式 >G 增加当前行到文档末尾处的缩紧层级 $ 移动到本行的末尾 . 相当于一个...
原文连接: https://spacevim.org/cn/layers/lang/elixir/ 模块简介 功能特性 启用模块 快捷键 语言专属...
原文连接: https://spacevim.org/cn/layers/lang/dart/ 模块简介 功能特性 依赖安装及启用模块 启用模...
 =   赋值操作符,可以用于算术和字符串赋值 +        加法计算     -        减法运算...
1.根据包名来查看指定的APP指定数据 adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数...
ctrl+F 向下翻页 ctrl+B 向下翻页 u 取消最近一次操作 U 取消当前行的操作 ZZ 保存当前内容并退出 gg 跳...