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

45

Я установил Ubuntu 11.10. Затем загрузите тему Solarized для терминала Gnome. С терминала мой 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
    
задан dhuCerbin 26.04.2012 в 20:36
источник

10 ответов

47

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

tmux -2

из командной строки tmux:

-2 Принудительное tmux, чтобы предположить, что терминал поддерживает 256 цветов.

    
ответ дан Holy Mackerel 27.09.2013 в 05:49
26

У меня такая же проблема на Ubuntu 10.04 LTS, используя Byobu 5.17 & amp; tmux 1.5, используя последнюю версию Solarized из репо GitHub.

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

export TERM="xterm-256color"

Похоже, что на панели запуска есть ошибка, но она еще не решена: byobu не отображает dircolors должным образом

    
ответ дан Raminoid 08.05.2012 в 07:35
18

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

в .tmux.conf

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

в .vimrc

set term=screen-256color

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

    
ответ дан kiran ps 07.12.2014 в 08:03
4

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

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

TERM=screen-256color vi

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

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

Ссылка

PS. Я предполагаю, что вы уже исправили опечатку, которую заметил Йорданброк.

    
ответ дан Marcin Kaminski 16.10.2012 в 22:01
2

Как объяснил Марцин Камински, если TERM = screen-256color vim работает для вас, просто добавьте следующее в свой .bashrc
СРОК = Экран-256-цветные и следуя за вашим .tmux.conf set -g default-terminal "screen-256color"

У меня была такая же проблема, это работает для меня.     

ответ дан user3908054 27.03.2015 в 04:16
1

В последней строке вашего .vimrc есть опечатка.

Он должен быть colorscheme solarized

Не уверен, что это помогает:)

    
ответ дан jordanbrock 29.04.2012 в 03:43
0

У вас может возникнуть проблема, описанная в этом ответе.

В принципе, настройка .tmux.conf работает, а TERM - screen-256color , но затем tmux открывает bash и вызывает ваш .bashrc, который устанавливает TERM на что-то еще (возможно, xterm-256color ).

Решение состоит в том, чтобы установить TERM в ваших настройках терминала, а не в .bashrc. Если это не вариант, вы можете проверить TERM внутри .bashrc и не изменять его, если он уже screen-256color .

    
ответ дан jtpereyda 27.02.2014 в 02:16
0

В исходном tmux оболочки убедитесь, что $TERM является либо xterm-256color , либо screen-256color . См. как изменить $ TERM :

  • Обычно изменение ~/.Xresources - лучший способ (если поддерживается)
  • Для gnome-terminal см. Ссылка

В качестве альтернативы, поскольку Святая Скумбрия сказал, вы можете заставить tmux до 256color с помощью:

$ tmux -2
    
ответ дан Wernight 01.04.2014 в 16:11
0

[Solucion] [1] что может нарушить ваше зрение и сделать Vim неприятным для использования в течение длительного периода времени.

Вы можете исправить это, выполнив: set term = screen-256color в Vim или перезапустив Vim в среде TERM = screen-256color, как рекомендуют некоторые эксперты: Ссылка

    
ответ дан JEnriquePs 11.08.2014 в 16:56
0

В вашем .bashrc или .zshrc просто добавьте

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

, а также начать с tmux -2

    
ответ дан Talal 15.06.2015 в 22:58