tmux, Solarized, and terminfo



这是一个非常具体的问题,但根据我在网上看到的,这是一个令人惊讶的普遍问题。我使用的是一个相当老的版本的Scientific Linux 5,它是基于Red Hat的。我使用solized vim配色方案的vim,并且我的TERM环境变量通常设置为xterm-256color。这工作得很好,直到我开始使用tmux。对于vim中的非空行,配色方案仅扩展到文档字符的末尾,其余空白为纯背景。

在线指南中的股票修复是设置TERM='screen-256color'。然而,在这样做之后,当我试图做一些无害的事情(如阅读手册页)时,我会得到不祥的警告:WARNING: terminal is not fully functional - (press RETURN)。然而,一切似乎都很正常,solalized的bug也被修复了。

我发现了一个功能修复-默认使用TERM='xterm-256color'并将这行添加到我的。bashrc:

alias v='function _vim(){ TERM='screen-256color'; vim $1; TERM='xterm-256color'; };_vim'

但它看起来像一个hack。有趣的是,我还设置了alias tmux='tmux -2',这是与配色方案相关的问题的常见建议。

我也知道在我的机器上有screen-256color的终端。

所以,实际上,主要的令人困惑的事情是,当使用TERM='screen-256color'时,我得到了那些关于完整功能的警告,而似乎没有任何错误。

我没有root权限,所以理想情况下,任何修复建议都不需要这个。

EDIT:我应该提到TERM='screen-256color-bce'给出了与TERM='screen-256color'相同的问题。

没有指定用户的环境,但可能使用bash或更少(Scientific Linux 5没有more)。

科学Linux 5的ftp站点上的包列表显示ncurses-5.5-24.20060715.src。它不包括 screen-256color (它在2006年10月被添加到ncurses中)。该系统可能会在安装后进行一些更改,从而具有较新的终端数据库。

使用termcap的应用程序将看不到此终端描述。Scientific 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包是用护士构建的。less使用TERM=screen-256color的问题将是以下可能性之一

  • screen-256color条目没有真正安装,或者
  • 护士提供的termcap接口有问题。

虽然这个时候screen程序正在进行性能修复,但前者似乎更有可能,从2006年初关于screen-256color的一个写得很差的条目的讨论中可以看出:Re: screen-256color terminfo entry?。我从阅读这篇文章中得到的是,有一些写得很差的终端描述(不是ncurses的部分)产生了这个问题。到2006年10月提议将其纳入护理系统时,这个问题已经得到了解决。在任何情况下,它都应该在那个时候被纠正。

相关内容

  • 没有找到相关文章

最新更新