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

Я установил Ubuntu 11.10. Затем скачал соляризованную тему для Gnome Terminal. С терминала мой vim выглядит хорошо: плагин vim-powerline отображается правильно, а синтаксис выделен правильными цветами. Но когда я запускаю tmux и запускаю vim - подсветка синтаксиса использует только один основной цвет, а vim-powerline не отображает цвета. Я посмотрел на FAQ по vim-powerline, и решение должно быть следующим: Я посмотрел на 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
57
задан 26 April 2012 в 22:36

12 ответов

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

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

export TERM="xterm-256color"

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

0
ответ дан 26 April 2012 в 22:36

Как объяснил Marcin Kaminski, если TERM=screen-256color vim <filename> работы для Вас затем просто добавляют следующее к Вашему .bashrc

TERM=screen-256color

и следующее в Вашем .tmux.conf:

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

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

2
ответ дан 26 April 2012 в 22:36

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

tmux -2

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

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

0
ответ дан 26 April 2012 в 22:36

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

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

TERM=screen-256color vi

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

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

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

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

0
ответ дан 26 April 2012 в 22:36

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

Это должно быть colorscheme solarized

Не уверен, поможет ли это:)

0
ответ дан 26 April 2012 в 22:36

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

в .tmux.conf

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

в .vimrc

set term=screen-256color

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

0
ответ дан 26 April 2012 в 22:36

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

По сути, настройка .tmux.conf работает, и TERM устанавливается на screen-256color, но затем tmux открывает bash и вызывает ваш .bashrc, который устанавливает TERM в другое значение (возможно, xterm-256color). 119]

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

0
ответ дан 26 April 2012 в 22:36

В оболочке, запускающейся tmux, проверьте это $TERM также xterm-256color или screen-256color. Посмотрите, как изменить $TERM:

  • Обычно изменение ~/.Xresources лучший способ (если поддерживается)
  • Поскольку терминал гнома видит https://askubuntu.com/a/379472

Как альтернатива, как Святая Макрель сказала, можно вызвать tmux к 256color через:

$ tmux -2
0
ответ дан 26 April 2012 в 22:36

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

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

и также начните с tmux -2

0
ответ дан 26 April 2012 в 22:36

Для тех, кто тратит время на цвета, и если соляризованный vim не работает на tmux, или устал от поиска цветов vim, это должно сработать через минуту, также это из официального репозитория, как следует. [ 116]

yum vim-jellybeans

или

mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
touch ~/.vimrc 
sed -i '/colorscheme/d' ~/.vimrc
echo colorscheme jellybeans >> ~/.vimrc

это исправит это с красивым набором цветов, и узоры будут настолько сфокусированными и полезными, если вы также пытаетесь установить эти выделения, поисковые слова, вот оно. все уже установлено для использования. Вы даже можете изменить цвета в файле конфигурации.

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

:colo ron, вы также можете заменить 'ron' следующим устанавливает и даже восстанавливает solo default

blue 
darkblue 
default
delek
desert
elflord
evening
koehler
morning.vim
murphy
pablo
peachpuff
ron
shine
slate
torte
zellner

и сохраняет в .vimrc

colo ron
syntax on
0
ответ дан 26 April 2012 в 22:36

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

Можно зафиксировать это путем выполнения: набор term=screen-256color в Vim или путем перезапуска Vim под TERM=screen-256color средой, как некоторые эксперты рекомендуют: http://sunaku.github.io/vim-256color-bce.html

0
ответ дан 26 April 2012 в 22:36

До:

Before

После:

After

Для меня проблема была вызвана этими строками из macos, основанного на .vimrc.

set t_ZH=^[[3m
set t_ZR=^[[23m
set termguicolors

Как только я закомментировал эти 3 цвета vim, они снова стали нормальными в Ubuntu.

0
ответ дан 26 November 2020 в 08:17

Другие вопросы по тегам:

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