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

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

当我在 Ubuntu 上的 xterm 中使用全屏 CLI 程序(例如 less 或 vim)然后退出它时,该程序的全屏输出不再可见。然而,当我在 FreeBSD 上执行相同操作时,全屏输出就停留在那里,位于下一个命令的行上方。有没有办法在 FreeBSD 上启用前一种行为,例如使用 Bash 选项?

答案1

FreeBSD 对“xterm”的 termcap 定义省略了备用屏幕转义序列。之前已经在这里讨论过了。您可以采取一些解决方法,例如(因为他们保留了该rxvt条目):

#!/bin/sh
TERM=rxvt tput ti
less "$@"
TERM=rxvt tput te

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

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

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

变更意见

将一些示例 xterm*-clear 条目添加到 termcap 文件中,以便人们更轻松地启用该行为。

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

进一步阅读:

答案2

less保留最后一页,export LESS=X.请参阅手册页。我也喜欢eF

答案3

如果您想要一个简单的修复方法,只需将其放入 FreeBSD 上的 .bashrc 中即可:

export TERM=xterm-clear

相关内容