2

Я использую Debian (Джесси).

Мой файл ~/.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), я получаю ожидаемый результат.

Vim работает в rxvt-unicode

Но когда я запускаю tmux в urxvt а затем запускаю vim в терминале tmux, цвета слишком яркие.

Vim работает в tmux, работает в rxvt-unicode

Как я могу это исправить?

2 ответа2

3

Эта проблема возникает из-за того, что терминал 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, который поставляется с терминалом urxvt, который поддерживает 256 цветов. Установка rxvt-unicode-256color устранила проблему.

Команды, которые я использовал:

aptitude update
aptitude purge rxvt-unicode
aptitude install rxvt-unicode-256color

Цвета выглядят немного по-другому.

Но опыт согласуется с tmux.

0

Ответ Сусама Пала великолепен и сработал для меня. Однако у меня все еще была небольшая проблема, поскольку человек выделил результаты поиска курсивом. Согласно последней записи в tmux-FAQ:

В описании terminfo экрана отсутствует режим курсива, на его месте стоит выделенный режим , но используется та же escape-последовательность, которую urxvt использует для курсива.

Вот как исправить эту проблему с терминала (адаптировано из FAQ):

$ 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 в ~/.tmux.conf:

set -g default-terminal screen-it-256color

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .