这是一个非常具体的问题,但根据我在网上看到的,这是一个非常常见的问题。我是基于Red Hat的相当旧版本的Scientific Linux 5。我将vim与Solarized vim颜色方案一起使用,我的TERM
环境变量通常设置为xterm-256color
。这工作正常,直到我开始使用tmux。在vim中的非空行中,颜色方案仅扩展到文档字符的末尾,剩余的空白是纯背景。
在线指南中的库存修正方法是设置TERM='screen-256color'
。然而,一旦这样做,我会得到不祥的警告:WARNING: terminal is not fully functional - (press RETURN)
,当试图做无害的事情,如阅读手册页。但是,一切似乎都运行正常,Solarized错误已得到修复。
我找到了一个功能性修补程序 - 默认情况下使用TERM='xterm-256color'
并将此行添加到我的.bashrc中:
alias v='function _vim(){ TERM='screen-256color'; vim $1; TERM='xterm-256color'; };_vim'
但它似乎是一个黑客。有趣的是,我还设置了alias tmux='tmux -2'
,这是与色彩方案相关问题的常见建议。
我也知道终端screen-256color
在我的机器上可用。
所以,真的,最令人困惑的是,当使用TERM='screen-256color'
时,我会在没有任何错误的情况下收到有关完整功能的警告。
我没有root权限,所以理想情况下,任何修复建议都不需要。
编辑:我应该提到TERM='screen-256color-bce'
提出与TERM='screen-256color'
相同的问题。
答案 0 :(得分:1)
未指定用户的环境,但可能使用bash及更少(Scientific Linux 5没有more
)。
Scientific Linux 5's ftp site上的包列表显示了ncurses-5.5-24.20060715.src.rpm,其中不包含 screen-256color
(它已添加到{{3中的ncurses中}})。通过一些安装后的更改,该系统可能具有更晚的终端数据库。
使用 termcap 的应用程序不会看到此终端说明。科学Linux的bash和更少的程序可以使用termcap而不是terminfo。快速检查bash-3.2-21.el5的更改日志
* Fri Feb 1 2008 Miroslav Lichvar <mlichvar@redhat.com> - 3.2-21
- Link with libtermcap
在某些系统上,缺少termcap条目会引发警告。但是对于Scientific Linux 5,给定的警告消息来自less
,它检查其终端描述(使用 termcap 接口),以确保它可以清除当前行的剩余部分,屏幕的其余部分和整个屏幕。
在Scientific Linux 5中,less
包是使用ncurses构建的。 less
使用TERM=screen-256color
的问题将是这些可能性之一
虽然此时screen
计划正在进行性能修复,但前者似乎更有可能,正如在2006年初screen-256color
的一篇写得不好的条目的讨论中所看到的那样: October 2006 的。我从阅读中得到的是,有一些写得不好的终端描述(不 ncurses的一部分)产生了问题。当提议包含在ncurses(Re: screen-256color terminfo entry?)中时,问题已得到修复。在任何情况下,它都会在那时得到纠正。