如何在 FreeBSD 上的 xterm 中隐藏全屏 CLI 程序输出?

Zed*_*igg 6 freebsd termcap terminal xterm

当我在 xterm 中使用 Ubuntu 上的全屏 CLI 程序(如 less 或 vim)然后退出时,该程序的全屏输出不再可见。然而,当我在 FreeBSD 上做同样的事情时,全屏输出只是停留在那里,在下一个命令的行上方。有没有办法在 FreeBSD 上启用以前的行为,例如使用 Bash 选项?

Tho*_*key 9

FreeBSD 对 "xterm" 的 termcap 定义省略了交替屏幕转义序列。这已经在这里讨论过。您可以做一些解决方法,例如(因为他们rxvt单独留下了条目):

#!/bin/sh
TERM=rxvt tput ti
less "$@"
TERM=rxvt tput te
Run Code Online (Sandbox Code Playgroud)

这将“工作”,因为 rxvt 在这种情况下使用 xterm 转义序列。简单地TERM=rxvt在您的环境中设置不会产生好的结果,但是这部分很有用。

或者,您可以修改/etc/termcap并重新编译终端数据库。作为参考,这里是删除备用屏幕的更改的链接:

由 dougb 修订 200503,2009 年 12 月 14 日星期一 07:18:31 UTC

修改意见

向 termcap 文件添加一些示例 xterm*-clear 条目,以便人们更容易启用该行为。

但是这样做的缺点是(再次)如果您想将它传递给远程机器(当然除了 FreeBSD),您将无法在 shell 中使用它。这些“xterm*-clear”条目都不会出现在 Ubuntu 中。

进一步阅读: