确保更少的清屏

确保更少的清屏

有没有办法确保less退出时清除屏幕?的相反less -X

当我退出 iTerm2 中的页面时,屏幕不会被清除man,但是当使用默认的 mac 终端时,屏幕会被清除。有人有建议吗?

$LESS被设定为less -R

答案1

当终端描述在功能中具有适当的转义序列时,通常less会“清除屏幕”(这可能是指从备用屏幕切换回正常屏幕)rmcup

TERM如果您在两个程序中使用不同的 值,您会看到差异。该infocmp程序可以显示相应终端描述的差异。

less 尝试清除屏幕的,但这取决于是否显示任何内容,以及输出是否是终端(与管道相反)。

除了终端描述之外,某些终端仿真器还可以选择是否允许备用屏幕。您可能在某个时候选择了该选项。 (我正在使用默认配置进行测试,它按预期工作)。

答案2

为什么不在退出时清除屏幕呢?

man man; clear

答案3

如果“less”无法清除您放置的屏幕,我建议:

function less(){
    less $@
    clear
}

在你的~/.profile/.bashrc.不确定这是否会像您在管道中想要的那样,但对于其他目的来说应该没问题。

可以添加printf '\033[2J\033[H'这一点,它应该适用于大多数终端,而无需依赖 terminfo 或其他外部引用。但它可能并非在所有地方都适用。 (参考:https://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html

(原来的答案是完全错误的,我的错误。这个实际上应该有效,但我无法更改现有的否决票:\)

相关内容