Vim в tmux отображает неправильные цвета

Vim в tmux отображает неправильные цвета

Я установил Ubuntu 11.10. Затем скачал тему Solarized для Gnome Terminal. Из терминала мой vim выглядит хорошо: плагин vim-powerline отображается правильно, а синтаксис подсвечивается правильными цветами. Но когда я запускаю tmux и там запускаю vim - подсветка синтаксиса использует только один базовый цвет, а vim-powerline не отображает никаких цветов. Я посмотрел FAQ по vim-powerline, и решение должно быть в этой строке в .tmux-config:

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

Но это не работает. Я посмотрел на TERM, и он возвращает 'xterm', поэтому я попробовал:

set -g default-terminal "xterm-256color"

Но это тоже не помогает.

Это единственная строка в .tmux.config. В .vimrc у меня есть следующие строки:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

решение1

Запуск tmux со следующим флагом исправил эту проблему:

tmux -2

из страницы руководства tmux:

-2 Заставить tmux предположить, что терминал поддерживает 256 цветов.

решение2

это сработало для меня

в.tmux.conf

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

в.vimrc

set term=screen-256color

удалить старое значение термина для .vimrc, поверьте мне, это сработает

решение3

У меня та же проблема на Ubuntu 10.04 LTS с использованием Byobu 5.17 и tmux 1.5 с использованием последней версии Solarized из репозитория GitHub.

Мне удалось частично исправить это, указав $TERMв .bashrcфайле:

export TERM="xterm-256color"

Похоже, что на launchpad есть сообщение об ошибке, но оно еще не исправлено: byobu не отображает dircolors правильно

решение4

Тип терминала должен быть установлен на screen-256color в ~/.tmux.conf. Он сообщает tmux, что устанавливать в переменной окружения TERM, поэтому это не будет работать для текущего сеанса — начните новый и проверьте.

Если это все еще не работает, вы можете запустить Vim с помощью:

TERM=screen-256color vi

Это устанавливает переменную окружения только для однократного выполнения vi.

Если это не поможет vim отобразить все цвета, проверьте, скомпилирован ли ваш терминал (я не уверен, что вы тестируете только с одним эмулятором терминала) для поддержки палитры из 256 цветов — загрузите и запустите приведенный ниже скрипт Perl из соответствующего эмулятора терминала.

http://scie.nti.st/dist/256colors2.pl

P.S. Полагаю, вы уже исправили опечатку, которую заметил jordanbrock.

Связанный контент