退出elinks后,浏览器页的历史在我的回滚缓冲区中挥之不去,因此,当我启动elinks时,不会返回到屏幕上缓冲的内容。
在启用altscreen的GNU屏幕中,这种情况不会发生。但是在任何正常的终端会话中,elink都停留在缓冲区中。我注意到,其他终端程序(如Vim和lynx )不会停留在回滚缓冲区中,而是在启动时将缓冲区返回到其状态。但是,我没有在ELinks中找到一个配置选项来确保它切换到备用终端。
$TERM=xterm-256color 是否有一个配置选项可以防止ELinks停留在回滚缓冲区中?
在进一步的研究中,回滚问题只发生在OSX上的iTerm2和Terminal.app中。在XTerm中,ELinks不修改回滚缓冲区。
发布于 2016-03-25 23:43:36
显而易见的问题是OP不喜欢终端和iTerm2显示(或不显示)交替屏幕的方式。这是xterm和模仿它的程序的一个特性,它允许应用程序在不修改常规命令行文本的情况下显示全屏文本。
如果(a) elinks认为它在xterm中运行,或者(b)如果它认为它在GNU屏幕上运行,那么它决定使用备用屏幕。
DISPLAY和WINDOWID来检查"xterm“。STY环境来检查"GNU屏幕“。因为在终端或iTerm2中这两种情况通常都是正确的,所以OP似乎想让elinks使用回滚缓冲区。这两个程序都支持这个特性。
最简单的方法是运行GNU屏幕,因为OP会立即获得所需的行为。如果这是不可能的,我们可以通过设置STY环境变量来假装在屏幕上运行,同时运行elinks (这比假装它在xterm中运行的副作用更少)。
由于随机设置该变量会干扰GNU屏幕的运行,因此它最好用作别名,例如,
alias elinks='STY=fixup /opt/local/bin/elinks'(使用MacPorts用于可执行文件的路径名)。
https://unix.stackexchange.com/questions/47477
复制相似问题