Візуалізація в tmux відображенні неправильних кольорів


57

Я встановив Ubuntu 11.10. Потім завантажили Соляризовану тему для терміналу Gnome. З терміналу мій vim виглядає добре: плагін vim-powerline відображається правильно і синтаксис виділяється належними кольорами. Але коли я запускаю tmux і там запускаю vim - підсвітка синтаксису використовує лише один основний колір, а vim-powerline не відображає кольорів. Я переглянув поширені запитання про vim-powerline та рішення, яке повинно бути в цьому рядку .tmux-config:

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

Але це не працює. Я подивився на 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

Не маю ідеї, чому ви не отримали жодних пропозицій, навіть від тих, хто, мабуть, отримав користь, отримавши резюме від власних відповідей. +1 від мене. Питання є здоровим, і це допомогло мені вирішити власну проблему, також знайшовши її.
0xC0000022L

Відповіді:


54

Починаючи tmux із наступним прапором, виправляє це для мене:

tmux -2

зі сторінки tmux man:

-2 Змусити tmux припустити, що термінал підтримує 256 кольорів.


1
Хороший натяк. Коли екран Cygwin на екрані почав руйнувати vim, я дуже швидко знову повернувся до tmux. Любіть це.
grantbow

1
FYI - Це єдине, що працювало для мене з tmux 2.3 та останньою лінією електропередач. Кольори в рядку статусу vim та tmux були дійсно дивними.
Plasty Grove

28

У мене така ж проблема в Ubuntu 10.04 LTS, що використовує Byobu 5.17 & tmux 1.5, використовуючи останній Solarized від репортажу GitHub.

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

export TERM="xterm-256color"

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


2
Це єдине, що працювало на мене!
Транкіль

Також працював над Ubuntu 14.04 з tmux 2.0
dukedave

Це рішення і в OS X, ха-ха
Джей,

27

це працювало для мене

в .tmux.conf

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

в .vimrc

set term=screen-256color

видалити старе значення терміна для .vimrc, повірте, це спрацює


1
Не працює для мене. tmux 1.8, vim 7.4.1816, ubuntu x86_64 з ядром 3.13.0-92-generic. FYI.
fstang

1
Він працював для мене без налаштувань .vimrc, лише .tmux.conf.
Гейсон Сантос

Налаштування .tmux.conf зробило для мене трюк!
гессельбом

4

Тип терміналу слід встановити на екран-256color у ~ / .tmux.conf. Він підказує tmux, що потрібно встановити змінною довкілля TERM, тому він не працюватиме для поточного сеансу - запустіть новий і протестуйте потім.

Якщо він все ще не працює, можна запустити Vim, використовуючи:

TERM=screen-256color vi

Це встановлює змінну середовища просто для одноразового виконання vi.

Якщо це не дозволяє відображати всі кольори vim, перевірте, чи створений ваш термінал (я не впевнений, ви тестуєте лише один емулятор терміналу) для підтримки 256 кольорової палітри - завантажте та запустіть сценарій Perl нижче від термінальний емулятор, про який йде мова.

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

PS. Я припускаю, що ви вже виправили помічену друкарню jordanbrock.


2

Як пояснив Марцін Камінський, якщо TERM=screen-256color vim <filename> працює для вас, тоді просто додайте наступне до свого.bashrc

TERM=screen-256color

та наступне у вашому .tmux.conf:

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

У мене була така ж проблема, це працює для мене.


Це був єдиний, хто працював на мене (tmux 1.8).
Яманеко

Власне, я просто тестував, і TERM=screen-256colorмені було достатньо лише зміни , незалежно від встановлення tmux на screen-256colorабо до xterm-256color. Дякую!
Яманеко

1

В останньому рядку вашого друку є помилка друку .vimrc.

Вона повинна бути colorscheme solarized

Не впевнений, чи це допомагає :)


0

У цій відповіді у вас може бути задокументована та сама проблема .

В основному, налаштування .tmux.conf працює і TERMвстановлюється screen-256color, але потім tmux відкриває bash і викликає ваш .bashrc, який встановлюється TERMна щось інше (можливо xterm-256color).

Рішення полягає в встановленні TERMв налаштуваннях вашого терміналу, а не в .bashrc. Якщо це не варіант, ви можете перевірити TERM.bashrc і не змінити його, якщо він вже є screen-256color.


0

У оболонці, що починає tmux, перевірте, що $TERMце xterm-256colorабо screen-256color. Дивіться, як змінити $ TERM :

  • Зазвичай зміни ~/.Xresourcesє найкращим способом (якщо він підтримується)
  • Про gnome-термінал див. Https://askubuntu.com/a/379472

Як альтернатива, як сказав Святий Скумбрія , ви можете змусити tmux до 256color за допомогою:

$ tmux -2

0

[Солюшон] [1], який може порушити ваше зір і зробити Vim неприємним у використанні протягом тривалого періоду часу.

Ви можете виправити це, запустивши: term = screen-256color у Vim або перезапустивши Vim у середовищі TERM = screen-256color, як рекомендують деякі фахівці: http://sunaku.github.io/vim-256color-bce.html


2
Що ви маєте на увазі під [Solucion] [1]? Чи намагалися ви звернутися до іншої відповіді чи посилання на неї? Відповіді не завжди відображаються в одному порядку. Я рекомендую розширити це, щоб уточнити, що ви говорите, може "порушити зір і зробити Vim неприємним у використанні протягом тривалого періоду часу".
Елія Каган

0

У свій .bashrc або .zshrc просто додайте

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

а також почніть з tmux -2


0

Для тих, хто витрачає час на кольори, і якщо соляризований vim не працює на tmux або втомився знаходити кольори vim, це повинно працювати за хвилину, також це є з офіційного сховища, як далі.

yum install 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

це виправить це за допомогою красивого набору кольорів, а візерунки настільки зосереджені та корисні, якщо ви також спробуєте встановити ці виділення, пошукові слова, це все. все вже налаштовано на використання. Ви навіть можете змінити кольори у файлі конфігурації.

Якщо ви не хочете встановлювати нічого, крім простого швидкого рішення, ігноруйте вище та спробуйте це in 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

Хто б не дав негативні відгуки. дозвольте мені почути поважну причину.
Seandex
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.