Потерять vim colorscheme в режиме tmux

Я использую iterm2, и когда я нахожусь в режиме tmux, цветовая схема, которую я установил в vim, не отображается. Только цветовая схема, которую я установил в iterm. Если я запускаю vim из оболочки, схема цветов выглядит правильно - только когда я в режиме tmux.

Я попытался установить :colorscheme molokai когда в vim (см. Скриншот ниже), и он не меняется - опять же, схема цветов по умолчанию для iterm2 остается.

Я пропускаю некоторые настройки для iterm или tmux.conf? Мои дотфлы здесь на github.

Ответ 1

У меня была та же проблема. Единственное отличие: я использовал solarize, а не molokai.

Чтобы устранить проблему, я установил псевдоним в ~/.bashrc:

alias tmux="TERM=screen-256color-bce tmux"

И настройте опцию default-terminal в ~/.tmux.conf:

set -g default-terminal "xterm"

Наконец, do $ source ~/.bashrc загружает новый псевдоним.

Ответ 2

Как упоминает выше @romainl, мне нужно было заставить tmux использовать 256 цветов, добавив флаг -2:

$ tmux -2

Я добавил alias tmux='tmux -2' в свой файл bash_profile, поэтому не забываю:)

Ответ 3

Я пробовал все вышеперечисленные решения, и для меня, наконец, работал у меня следующие строки в .tmux.conf:

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

Ответ 4

Я только что узнал, почему у меня много путаницы. У меня, как и у других, было трудное время, когда настройка терминала по умолчанию вступила в силу. Я вспомнил, что у меня была сессия tmux в фоновом режиме. Я снова подключил сеанс, закрыл свои процессы и закрыл все процессы tmux. В следующий раз, когда я перезапустил tmux, настройка по умолчанию в терминале .tmux.conf начала действовать. Я не знаю, делают ли другие это, но я рекомендую закрыть все процессы tmux перед изменением файла .tmux.conf.

Я получил свою настройку для работы на своей локальной машине (OSX 10.9.5 с iTerm2) без каких-либо изменений в .bashrc или .bash_profile. Все, что я сделал, это добавить строку set -g default-terminal "xterm-256color" в ~/.tmux.conf и перезапустить все процессы tmux.

Я получил удаленную настройку (ssh to Ubuntu 14.04), чтобы работать точно так же без каких-либо изменений в .bashrc. Я просто добавил set -g default-terminal "xterm-256color" в ~/.tmux.conf на моем удаленном компьютере и перезапустил все удаленные процессы tmux.

Вы можете проверить, что видит Vim, выполнив echo $TERM из сеанса tmux. Он продолжал говорить screen как значение до тех пор, пока не перезапустил все tmux-процессы, после чего он отразил xterm-256color, как ожидалось.

Надеюсь, что это поможет.

Ответ 5

Итак, это немного на черновой стороне, но, возможно, стоит упомянуть, что использование экрана часто прерывает ключи Home и End. Используя

export TERM="xterm-256color"

in должен поддерживать функциональность этих функций и позволить цветной схеме (или powerline) работать нормально.

Ответ 6

Мне нужно было, чтобы vim правильно отображался с tmux в терминале на ubuntu и cygwin/mintty на окнах. Я получил его для работы, объединив ответы так.

В .bashrc:

alias tmux="tmux -2"

В .vimrc:

" use 256 colors in terminal
if !has("gui_running")
    set t_Co=256
    set term=screen-256color
endif

" fix cursor display in cygwin
if has("win32unix")
    let &t_ti.="\e[1 q"
    let &t_SI.="\e[5 q"
    let &t_EI.="\e[1 q"
    let &t_te.="\e[0 q"
endif

основываясь на ответах на этот вопрос, эту вики-страницу Vim и этот вопрос с блочным курсором

Ответ 7

Я пробовал все вышеприведенные инструкции, и я узнал, что самое главное - я должен явно добавить следующую строку в мой .bashrc файл.

export TERM=screen-256color

Я не знаю, почему псевдоним tmux = "TERM = screen-256color-bce tmux" не работает. Я использую Sierra 10.12.1.

Ответ 8

В случае, если кому-то нужна поддержка 24-битного цвета:

Tmux поддерживает 24-битный цвет с версии 2.2. Если ваш терминал поддерживает 24-битный цвет, добавьте терминал в настройку переопределения терминалов. Например,

set -ga terminal-overrides ",xterm-256color:Tc"

Контрольный список для моей среды:

  • macOS Sierra 10.12.3
  • iTerm2 3.0.14 (Тип терминала отчета xterm-256color)
  • neovim 0.1.7 (Включите 24-битный цвет, добавив: xterm-256color в .vimrc)
  • tmux 2.3 (Добавить set -ga terminal-overrides ",xterm-256color:Tc" в .tmux.conf)

Больше ничего не нужно добавлять в .bashrc или .zshrc.

Надеюсь, это поможет.

Ответ 9

Добавление следующей строки в .tmux.conf для меня с macOS Sierra 10.12.6,

установить -g default-terminal "screen-256color"

Ответ 10

Если вы используете tmuxinator или mux, вам нужно добавить их в .bashrc или .zshrc:

alias tmux='TERM=screen-256color tmux -2'
alias tmuxinator='TERM=screen-256color tmuxinator'
alias mux='TERM=screen-256color mux'

Эти силы используют 256-цветный терминал.

Затем будут выполняться команды tmux, tmuxinator и mux.

Ответ 11

Так как это первый результат в Google и так как ничего из вышеперечисленного не помогло.. хотелось опубликовать это, чтобы кто-то мог найти это полезным

в .vimrc:

set background=dark
set t_Co=256

НТН

Ответ 12

Мне не очень удавалось пытаться экспортировать другой TERM или установить по умолчанию терминал в .tmux.conf.

Мое решение для исправления цветов vim в tmux добавляло эту строку к .tmux.conf:

set -g terminal-overrides 'xterm:colors=88'

Я не уверен, почему это переопределение было необходимо, учитывая, что мой TERM=xterm, и у меня iTerm установлен на xterm, но он работает.

Ответ 13

На странице управления tmux добавьте флаг следующим образом:

tmux -2

Этот флаг -2 заставляет tmux работать в режиме с 256 цветами.

Это работает для меня

Ответ 14

Чтобы настроить правильный цвет и избавиться от проблемы с рендерингом в Ubuntu и Mac:

проверьте это

Ответ 15

Если вы окажетесь в том же порядке, что и я, что ни одно из вышеприведенных действий не работает. Попробуйте это:

в .tmux.conf:

set -g default-terminal "xterm"

в bash config (возможно .bashrc или .bash_profile):

alias tmux="tmux -2"

а затем запустите:

killall tmux

а затем перезапустите tmux

Ответ 16

Просто пришлось разобраться с этой проблемой, и хотя все ранее опубликованные ответы были полезны, они не решили проблему в моем случае.

Моя проблема была исправлена путем удаления следующей строки в моем .vimrc:

set termguicolors

который был переделан с другой инструкцией в любом случае.

Теперь со следующей строкой, найденной в предыдущих файлах anwsers в моем .tmux.conf:

export TERM="screen-256color"

все красиво и красочно.

Ответ 17

Я удалил set termguicolors, но он не работает. Установка set notermguicolors вместо этого в .vimrc работает.