Существует более новая версия mtp-tools, доступная в бэкпортах, так что вы можете попробовать, если это решит проблему.
tmux
не поддерживает возможность terminfo bce
(back color erase), которую vim
проверяет, чтобы решить, использовать ли свою схему "цвета по умолчанию".
Эта особенность tmux
упоминалась несколько раз -
Для справки позже, когда я, несомненно, погуглю эту настройку моей следующей машины.
Используйте эти инструкции, чтобы добавить необходимые двоичные файлы и библиотеки DLL в PATH Git bash:
Используйте эти команды для настройки:
echo 'set -g default-terminal "screen.xterm-256color"' > ~/.tmux.conf
tmux -2u
Моя переменная TERM: Вне tmux: xterm-256color Внутри tmux: screen-256color
Это правильно и у меня работает. Попробуйте использовать другой терминал (я использую urxvt), чтобы узнать, не является ли проблема с терминалом Gnome.
Также проверьте COLORTERM
(у меня установлено значение rxvt
) и отключили TERMCAP
.
Благодаря анализу @egmont того, какие цвета выводил Vim, когда TERM=screen-256color
, я был вдохновлен посмотреть на цветовую схему, которую Vim использует в двух сценариях.
Vim сообщает, что использует цветовую схему по умолчанию
в обоих случаях. Я подумал, что это странно, потому что цветовая схема по умолчанию
на Fedora 25 (/usr/share/vim/vim80/colors/default.vim
) не соответствует цветам, которые я вижу, когда TERM=xterm-256color
. Если я явно задаю цветовую схему с помощью :colorscheme default
, когда TERM=xterm-256color
, внешний вид Vim меняется на тот, который я вижу, когда TERM=screen-256color
. Чтобы вернуть цвета к тем, что были при первом запуске Vim, мне пришлось использовать цветовую схему ron
. Прогресс!
Я нашел ответ Ask Ubuntu answer, в котором говорится, что когда Vim сообщает, что использует цветовую схему default
, это не обязательно означает default.vim
, а скорее какую-то специфическую цветовую схему. Как указано в ответе, темная тема (которую я использую) соответствует цветовой схеме ron
, как я и обнаружил выше. (Хотя это сообщение относится к Ubuntu, я предполагаю, что ОП использовал GNOME.)
Я также нашел другой вопрос, который, похоже, описывает ту же проблему, что и у меня. Я наткнулся на него во время поиска, прежде чем опубликовать этот вопрос, но по какой-то причине цветовая схема не показалась мне подходящей.
В итоге я поступил так, как @LapshinDmitry в своем ответе, и явно установил colorscheme ron
в моем ~/.vimrc
файле. Теперь, запускаю ли я Vim внутри или вне tmux, цвета отображаются одинаково. Единственный недостаток - если я когда-нибудь сменю тему рабочего стола с темной на светлую, Vim не будет автоматически переключаться на цветовую схему "по умолчанию" светлой темы, которая, по-видимому, peachpuff
. Я могу с этим смириться, так как вряд ли я когда-либо буду менять свою тему.
Я не приму этот ответ, потому что считаю явную установку цветовой схемы в моем ~/.vimrc
скорее обходным путем, чем решением. Если кто-то может объяснить, почему Vim загружает другую цветовую схему "по умолчанию" в зависимости от значения параметра TERM
, я с радостью приму этот ответ, поскольку мне интереснее понять первопричину. Я подозреваю, что это как-то связано с тем, как Vim интерпретирует возможности терминала между двумя файлами terminfo.
У меня уже была похожая проблема. Комментарии, выделенные синим цветом в Vim, было трудно читать. В .tmux.conf
я установил это:
set -g default-terminal "screen-256color"
А в .vimrc
:
set background=dark
Теперь это выглядит следующим образом и работает как в Gnome Terminal, так и в Cygwin: