tmux vim colorcheme фон не відображається


12

Я встановив tmux, але тепер текстовий режим vim colorchemes не заповнює кольором тла належним чином. Ось як це виглядає з кольором схеми xoria256 у звичайному терміналі Ubuntu 14.10:

введіть тут опис зображення

І ось коли я запускаю його в точно той же термінал після tmux:

введіть тут опис зображення

Отже, як ви бачите, робочий стіл відображається скрізь, де немає тексту vim. У мене 256 кольоровий термінал.

Мій .tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

і у мене 256 кольоровий термінал:

~ tput colors
256

Як змусити tmux правильно працювати з кольоровими схемами vim 256 кольорів, які добре працюють у звичайному терміналі?


На мій досвід, tmux поводиться дивно, коли запускається всередину gnome-terminal. Спробуйте запустити tmux з TERM=xterm tmuxі подивіться, чи поводиться він інакше. Якщо xtermне виходить, спробуйте xterm-256colorабо xterm-color.
jw013

@ jw03 На жаль, жоден із цих варіантів не працював, щоб виправити це. Ідентична поведінка. Така ж поведінка, якщо я запускаю tmux всередині термінатора
Thomas Browne

1
У оболонці всередині tmux, яке значення $TERM? Якщо це не так screen-256color, спробуйте запустити vimяк TERM=screen-256color vim, а потім переконайтеся, що немає наборів сценаріїв запуску TERM(або, якщо вам потрібно зробити це, щоб обминути помилкове програмне забезпечення, переконайтеся, що він спочатку перевіряє початкове значення).
Ри-

@minitech: Бінго. У мене був xterm-256color, тоді як екран-256color вирішує проблему. Якщо ви зробите цю відповідь, я прийму її.
Томас Браун

Це працювало для мене: stackoverflow.com/a/15095377/96855
Олів'є Лалонде

Відповіді:


5

Це трапляється, коли в середовищі Vim TERMне встановлено правильне screen[-256color], як правило, сценарій запуску оболонки. Якщо це так - наприклад, у вас є

TERM=xterm-256color

, або видаліть його, або переконайтесь, що він перевіряє початкове значення, TERMперш ніж його змінити, наприклад

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


2

Пізній коментар, але я переглянув усі теми і не зміг його вирішити, поки не зробив наступне. Все, що я повинен був зробити, це додати другу перевірку

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

на додаток до першого умовного твердження у моєму .bashrcфайлі:

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

У мене це було також .tmux.conf:

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

У моєму .vimrcфайлі:

set term=screen-256color
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.