退出后elinks
,浏览器页面历史记录在我的回滚缓冲区中徘徊,因此不会返回到我启动时屏幕上缓冲的任何内容elinks
。
在启用的GNU 屏幕内altscreen
,这确实不是发生。但在任何正常的终端会话中,elinks 都会保留在缓冲区中。我注意到其他终端程序,如 Vim 和 lynx不要停留在回滚缓冲区中,并将缓冲区返回到启动时的状态。但是,我在 ELinks 中没有找到配置选项来确保它切换到备用终端。
$TERM=xterm-256color
是否有配置选项可以防止 ELink 留在回滚缓冲区中?
更新:
经过进一步调查,回滚问题仅发生在 OSX 上的 iTerm2 和 Terminal.app 中。在 XTerm 中,ELinks 不会修改回滚缓冲区。
答案1
明显的问题是 OP 不喜欢终端和 iTerm2 显示(或不显示)备用屏幕的方式。这是 xterm 和模仿它的程序的一个功能,它允许应用程序显示全屏文本而不修改正常的命令行文本。
elinks
xterm
如果 (a) 它认为它正在运行,或者 (b) 如果它认为它正在 GNU 屏幕中运行,则决定使用备用屏幕。
- 它通过查看两个环境变量是否设置为非空值来检查“xterm”:
DISPLAY
和WINDOWID
。 STY
它通过查看环境是否已设置来检查“GNU screen” 。
由于这两个条件在终端或 iTerm2 中通常都不成立,因此 OP 似乎想要elinks
使用回滚缓冲区。这两个程序都支持该功能。
最简单的方法是运行 GNU screen,因为 OP 会立即获得所需的行为。如果这是不可能的,可以在STY
运行时通过设置环境变量来假装在 screen 中运行elinks
(这比试图假装在 中运行的副作用更少xterm
)。
由于随机设置该变量会干扰运行 GNU 屏幕,因此它作为别名效果最好,例如,
alias elinks='STY=fixup /opt/local/bin/elinks'
(使用 MacPorts 用于可执行文件的路径名)。