Вопрос по macos – потерять vim colorscheme в режиме tmux

210

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

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

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

Что происходит, когда вы делаете$ tmux -2? romainl
Это было полностью. Что такое флаг -2? tristen
Это заставляет tmux работать с 256 цветами. romainl

Ваш Ответ

17   ответов
1

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

tmux -2

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

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

59

описанные выше, и в конечном итоге у меня сложилось следующее:.tmux.conf:

set -g default-terminal "xterm-256color"
Это работает для меня на терминале Йосемити.
Я использую tmux через SSH, и это также работает для меня, хотя я не использую xterm, просто обычный SSH.
Это работает для меня, используя Putty в Windows, а также.
Это работает и для меня (Yosemite + iTerm2), спасибо.
Я не использовал его поверх ssh, и это был единственный ответ, который мне помог. Локальная сессия iTerm в OSX 10.9.5.
69

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

$ tmux -2

я добавилalias tmux='tmux -2' на мой bash_profile, так что я не забуду :)

Error: User Rate Limit Exceeded-2Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededTERM установлен вxtermError: User Rate Limit Exceededxterm-256colorError: User Rate Limit Exceededtmux -2Error: User Rate Limit ExceededTERM=xterm-256color tmuxError: User Rate Limit Exceeded
Error: User Rate Limit ExceededTERM являетсяscreen. -2Error: User Rate Limit ExceededTERMError: User Rate Limit Exceeded:echo &t_CoError: User Rate Limit Exceeded8Error: User Rate Limit ExceededTERMError: User Rate Limit Exceededxterm-256colorError: User Rate Limit Exceededurxvt-unicode-256colorError: User Rate Limit ExceededTERMError: User Rate Limit Exceededset -g default-terminal "screen-256color".
0

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

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

set termguicolors

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

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

export TERM="screen-256color"

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

9

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

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

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

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

  • macOS Sierra 10.12.3
  • iTerm2 3.0.14 (Report Terminal Type is xterm-256color)
  • neovim 0.1.7 (Enable 24-bit color by adding: xterm-256color to .vimrc)
  • tmux 2.3 (Add set -ga terminal-overrides ",xterm-256color:Tc" to .tmux.conf)

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

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

Error: User Rate Limit Exceeded
13

Мне нужно Vim для правильного отображения с Tmux в терминале на Ubuntu и Cygwin / Mintty на Windows. Я заставил это работать, комбинируя ответы как это.

В .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 а такжеэтот вопрос курсора блока

Error: User Rate Limit Exceededset t_Co=256Error: User Rate Limit Exceededtmux псевдоним.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededtmux псевдоним.
4

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

в.vimrc:

set background=dark
set t_Co=256

НТН

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
26

Я только что обнаружил, почему у меня было много путаницы. Мне, как и другим здесь, было трудно добиться, чтобы настройки терминала по умолчанию вступили в силу. Я вспомнил, что у меня был сеанс 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 к Ubuntu 14.04), чтобы работать точно так же, без каких-либо изменений в.bashrc, Я просто добавилset -g default-terminal "xterm-256color" в~/.tmux.conf на моей удаленной машине и перезапустил все удаленные процессы tmux.

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

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

Процесс убийства Tmux работал для меня! Спасибо @Chev
спасибо, ключевая фраза была "закрыты ВСЕ процессы tmux"
Error: User Rate Limit Exceeded
После этого поста я подтвердил еще несколько операционных систем, закрывая все процессы и устанавливаяdefault-terminal вариант в.tmux.confError: User Rate Limit Exceeded
1

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

в.tmux.conf:

set -g default-terminal "xterm"

в конфиге bash (возможно.bashrc или же.bash_profile):

alias tmux="tmux -2"

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

killall tmux

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

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 Команда все будет работать.

238

У меня такая же проблема. Единственная разница была я используюsolarize скорее тогдаmolokai.

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

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

И настроитьdefault-terminal вариант в~/.tmux.conf:

set -g default-terminal "xterm"

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

Терминал по умолчанию для экрана 256 для работы на OSX здесь. Спасибо!
Лично мне пришлось использоватьset -g default-terminal "screen-256color" работать, а неxterm на OS X, sshed в коробку Ubuntu. Я ссылался на этот сайт:rhnh.net/2011/08/20/vim-and-tmux-on-osx
Я прочитал в каком-то другом ответе (не смог найти ссылку), что не было хорошей практики форсировать СРОК, хотя я точно не знаю. Посколькуtmux -2 вариант сset -g default-terminal "screen-256color" работал для меня, это будет мой выбор. Но все равно спасибо!
Я использую это вместоtmux -2 как это более многословно.
Псевдоним здесь не имеет смысла: он притворяется tmux, что он работает внутри экрана или tmux, что вряд ли когда-либо так. Чтобы сообщить tmux, что терминал, в котором он работает, поддерживает 256 цветов, запуститеtmux -2 или жеtmux -2 attach (tmux решает каждый раз, когда вы присоединяете новый или существующий сеанс к терминалу). Разумный псевдоним будетalias tmux='tmux -2', Смотрите такжеtmux, TERM and 256 colours support
1

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

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

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

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

0

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

10

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

export TERM=screen-256color

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

4

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

установить -g default-Terminal & quot; экран-256цвет & quot;

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

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

export TERM="xterm-256color"

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

tmux 1.9a, OSX 10.9.2, iTerm2 Build 1.0.0.20130622 export TERM = & quot; xterm-256color & quot; в .bash_profile, затем установите iterm в xterm-256-цвет работал для меня. Нет необходимости устанавливать какие-либо настройки Tmux.
Это решение не работает на Debian 7.1, в то время как другие работают.
Спасибо за указание на это. Я этого не знал. Судя по всему, он все еще работает для Debian derv из того, что я видел до сих пор. В мою защиту пост был со ссылкой на OSX.
1

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

Проверь это

Error: User Rate Limit Exceeded

Похожие вопросы