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 中。
进一步阅读: