2012-04-15 5 views
185

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

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

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

Любая помощь будет гранд :)

+30

Что происходит, когда вы выполняете '$ tmux -2'? – romainl

+4

Это было полностью. Что такое флаг -2? – tristen

+11

Он заставляет tmux работать с 256 цветами. – romainl

ответ

217

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

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

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

и установить опцию default-terminal в ~/.tmux.conf:

set -g default-terminal "xterm" 

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

+14

Я использую это вместо 'tmux -2', поскольку это более подробно. – thameera

+75

Лично мне пришлось использовать «set -g default-terminal» screen-256color «для работы, а не« xterm »на OS X, проложенный в поле Ubuntu. Я ссылался на этот сайт: http://rhnh.net/2011/08/20/vim-and-tmux-on-osx – waffl

+3

терминал по умолчанию для экрана-256 для работы с OSX здесь. благодаря! – jakecraige

62

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

$ tmux -2 

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

+0

На самом деле, это необязательно: я не использую '-2', но у меня 256 цветов, работающих в Vim в tmux. – romainl

+0

@romainl Это необходимо, если tmux не обнаруживает, что ваш терминал имеет 256 цветов, что довольно часто. – Gilles

+1

@ Gilles, Vim не обнаруживает, что терминал поддерживает 256 цветов, поскольку по умолчанию tmux 'TERM' является' screen'. '-2' не изменяет' TERM' и не изменяет ничего цвета, связанного с тем, что информация Vim получает из своей среды: ': echo & t_Co' по-прежнему возвращает' 8'. С информацией, которую он дает, Vim делает правильные вещи. Единственное, что должно быть установлено, это 1. «TERM» вашего эмулятора терминала «xterm-256color» или эквивалентное значение, такое как «urxvt-unicode-256color» и 2. tmux по умолчанию 'TERM' с' set -g default-terminal "экран-256-цветные" '. – romainl

18

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

export TERM="xterm-256color" 

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

+1

Это решение не работает на Debian 7.1, в то время как другие делают. – rominf

+0

Спасибо, что указали это. Я этого не знал. По-прежнему, похоже, для Debian derv работает то, что я видел до сих пор. В моей защите сообщение было ссылкой на OSX. – Jpatrick

+0

tmux 1.9a, OSX 10.9.2, iTerm2 Build 1.0.0.20130622 export TERM = "xterm-256color" в .bash_profile, а затем установить iterm для xterm-256-color для меня. Не нужно устанавливать какую-либо конфигурацию tmux. – agenteo

47

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

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

Я использую tmux через SSH, и это тоже то, что сработало для меня, хотя я не использую xterm, просто обычный SSH. –

+0

Я не использовал его по ssh, и это был единственный ответ, который сработал для меня. Локальный сеанс iTerm в OSX 10.9.5. – Chev

+3

Это работает для меня на терминале Йосемити. –

1

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

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

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

Я не знаю, почему это переопределение было необходимо, учитывая, что мой TERM=xterm и я Iterm установлен XTERM, а также, но, похоже, это работает.

18

Я только что узнал, почему у меня было много путаницы. У меня, как и у других, было трудное время, когда настройка терминала по умолчанию вступила в силу. Я вспомнил, что у меня была сессия 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.

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

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

+5

спасибо, ключевая фраза была «закрыта все процессы tmux» – Ashnur

+0

Я подтвердил еще несколько операционных систем с этого поста, закрыв все процессы и установив опцию 'default-terminal' в' .tmux.conf', работал 100 % времени. – Chev

+1

Убивающий tmux процесс работал для меня !! Спасибо @Chev – Kartik

1

От человека странице tmux, добавив флаг следующим образом:

tmux -2 

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

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

11

мне нужен Vim для корректного отображения с tmux в терминале на убунту и 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 

на основе ответов от этого вопроса, this Vim wiki page и this block cursor question

+0

У меня была проблема с mintty, и добавление конфигурации vim исправило это для меня. Мне даже не нужно было делать псевдоним 'tmux'. – trigoman

+0

@ trigoman, тоже для меня тоже, мне просто нужно было обновить .vimrc. – Anonymous

+0

Я пробовал все предыдущие предложения. Просто добавьте '' 'set t_Co = 256''' в .vimrc, и он был исправлен. Мне не нужно было создавать псевдоним '' tmux'''. – Mike

3

Если вы используете 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 команда будет работать.

1

Для того, чтобы установить правильный цвет и избавиться от оказывающего вопроса как в Ubuntu и Mac:

check this

+0

Я думаю, что «проверьте это», и ссылка не является хорошим ответом. – sohnryang

1

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

в .tmux.conf:

set -g default-terminal "xterm" 

в Баш конфигурации (возможно .bashrc или .bash_profile):

alias tmux="tmux -2" 

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

killall tmux 

, а затем возобновить tmux

6

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

export TERM=screen-256color 

Я не знаю, почему псевдоним tmux = "TERM = трафаретная-BCE 256-цветные tmux" не работает. Я использую Sierra 10.12.1.

6

В случае, если кто нуждается в 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 (Enable 24- разрядного цвета путем добавления: xterm-256color к .vimrc)
  • tmux 2.3 (Добавить set -ga terminal-overrides ",xterm-256color:Tc" в .tmux.conf)

Всё, что мне нужно найти в .bashrc или .zshrc.

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

2

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

установочных наборов -g по умолчанию-терминал «экран-

» 256-цветные
+0

То же самое здесь. Спасибо @ waffl за то, что нашли это решение! –

0

Поскольку это первый результат на Google и так как ни один из вышеперечисленных helped..wanted не размещать это так, что кто-то может оказаться полезным

в .vimrc:

set background=dark 
set t_Co=256 

НТН

Смежные вопросы