我正在使用 Debian(Jessie)。
我的 ~/.vimrc 文件包含以下语句。
colorscheme murphy
我的 ~/.Xresources 文件包含以下属性。
URxvt.background: #000000
URxvt.foreground: #e0e0e0
URxvt.scrollBar: false
URxvt.borderless: true
URxvt.font:xft:Bitstream Vera Sans Mono:pixelsize=16
当我vim
在我的 rxvt-unicode 终端(urxvt
)内启动时,我得到了预期的输出。
但是当我在 tmux 终端tmux
内启动urxvt
然后vim
在 tmux 终端内启动时,颜色太亮了。
我怎样才能解决这个问题?
答案1
出现此问题的原因是 rxvt-unicode (urxvt) 终端仅支持 88 种颜色,而 tmux 终端支持 256 种颜色。
urxvt 的输出:
susam@nifty:~$ tput colors
88
因此,当 tmux 启动时,它仅使用 8 种颜色
susam@nifty:~$ tput colors
8
将以下 tmux 命令添加到 ~/.tmux.conf 没有帮助。
set -g default-terminal screen-256color
有了 ~/.tmux.conf 中的这一行,当 tmux 启动时,它似乎使用了 256 种颜色。
susam@nifty:~$ tput colors
256
然而,这并没有帮助,因为尽管 tmux 似乎使用了 256 种颜色,但底层 rxvt-unicode (urxvt) 终端无法正确显示它们,因为它仅支持 88 种颜色。因此,Vim 仍然显示太亮的颜色。
解决方案:安装 rxvt-unicode-256color 包。
Debian 中有一个 rxvt-unicode-256color 软件包,它附带支持 256 种颜色的 urxvt 终端。安装 rxvt-unicode-256color 解决了该问题。
我使用的命令:
aptitude update
aptitude purge rxvt-unicode
aptitude install rxvt-unicode-256color
现在颜色看起来有点不同。
但体验和tmux一致。
答案2
Susam Pal 的回答很棒,对我很有用。不过,我仍然有一个小问题,因为男人突出显示的搜索结果斜体。根据tmux 常见问题解答:
Screen 的 terminfo 描述缺少斜体模式并取而代之的是突出模式,但使用与 urxvt 用于斜体的转义序列相同。
以下是从终端修复此问题的方法(改编自常见问题解答):
$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen-256color"
$ infocmp "$screen_terminfo" | sed \
-e 's/^screen[^|]*|[^,]*,/screen-it-256color|screen with italics support,/' \
-e 's/%?%p1%t;3%/%?%p1%t;7%/' \
-e 's/smso=[^,]*,/smso=\\E[7m,/' \
-e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
-e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo
然后,更改 ~/.tmux.conf 中的以下 tmux 行:
set -g default-terminal screen-it-256color