如何防止ELinks停留在回滚缓冲区中?

如何防止ELinks停留在回滚缓冲区中?

退出后elinks,浏览器页面历史记录在我的回滚缓冲区中徘徊,因此不会返回到我启动时屏幕上缓冲的任何内容elinks

在启用的GNU 屏幕内altscreen,这确实不是发生。但在任何正常的终端会话中,elinks 都会保留在缓冲区中。我注意到其他终端程序,如 Vim 和 lynx不要停留在回滚缓冲区中,并将缓冲区返回到启动时的状态。但是,我在 ELinks 中没有找到配置选项来确保它切换到备用终端。

$TERM=xterm-256color  

是否有配置选项可以防止 ELink 留在回滚缓冲区中?

更新:

经过进一步调查,回滚问题仅发生在 OSX 上的 iTerm2 和 Terminal.app 中。在 XTerm 中,ELinks 不会修改回滚缓冲区。

答案1

明显的问题是 OP 不喜欢终端和 iTerm2 显示(或不显示)备用屏幕的方式。这是 xterm 和模仿它的程序的一个功能,它允许应用程序显示全屏文本而不修改正常的命令行文本。

elinksxterm如果 (a) 它认为它正在运行,或者 (b) 如果它认为它正在 GNU 屏幕中运行,则决定使用备用屏幕。

  • 它通过查看两个环境变量是否设置为非空值来检查“xterm”:DISPLAYWINDOWID
  • STY它通过查看环境是否已设置来检查“GNU screen” 。

由于这两个条件在终端或 iTerm2 中通常都不成立,因此 OP 似乎想要elinks使用回滚缓冲区。这两个程序都支持该功能。

最简单的方法是运行 GNU screen,因为 OP 会立即获得所需的行为。如果这是不可能的,可以在STY运行时通过设置环境变量来假装在 screen 中运行elinks(这比试图假装在 中运行的副作用更少xterm)。

由于随机设置该变量会干扰运行 GNU 屏幕,因此它作为别名效果最好,例如,

alias elinks='STY=fixup /opt/local/bin/elinks'

(使用 MacPorts 用于可执行文件的路径名)。

相关内容