Як змусити соляризовану колірну схему працювати з gnome-terminal, tmux та vim?


25

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

По-перше, я не міг легко встановити 16 визначень соляризованих кольорів у gnome-терміналі (я це робив вручну / клацаючи лише для того, щоб зрозуміти, що я не отримав правильність порядку / відображення). Після того, як я вирішив, що рухався далі ...

Тоді у мене були соляризовані кольори, які працювали в vim OK-ish, але були якісь незвичайні чорні фони, які з’являються в певній підсвічуванні. Після того, як я це виправив, я рухався далі ...

Тоді я зрозумів, що vim пішов проти v. Winky одного разу, працюючи в tmux. Це масово обговорюється, але дуже мало хто з відповідей (які в основному говорять про створення TERMв xterm-256colors) працював для мене. Я врешті-решт це теж виправив.

Solarized - це дуже приємна палітра (хоча я затемнював найтемніший базовий колір і світлішав найлегший, оскільки я віддаю перевагу більш високій контрастності, і на моєму каліброваному екрані знайшов "білий" tmux занадто жовтий - чудово підходить на типовому каліброваному екрані ноутбука, оскільки вони " як правило, занадто синій!), тому я розміщую це питання з його відповіддю, щоб поділитися результатами мого навчання.


Я використовую xterm-256color (не термінал GNOME), tmux і vim, і не пам'ятаю, щоб перестрибувати кудись поблизу цього безлічі обручів. Єдине, що мені довелося зробити - це солярізація терміналу (xterm використовує XResources замість профілів), що було легким болем, щоб з'ясувати, додати, solarized.vimі я все налаштував.
jw013

Відповіді:


24

Соляризований надає дуже специфічні кольори. Ви не можете досягти цих квітів в стандартній кольорової палітри 256 . Єдиний спосіб досягти цього - це налаштувати точні кольори в емуляторі терміналу, тоді програми вважають, що вони просто використовують стандартні 16 кольорів (8 + 8 яскравих), але вони були точно відображені в палітрі Solarized.

Термінал Gnome не забезпечує дуже простий спосіб експортувати / імпортувати палітри або профілі, але ви можете зробити це за допомогою цього скрипту bash:

#!/bin/sh
DARK_BG='#000014141A1A'
# original: DARK_BG='#00002B2B3636'
LIGHTEST='#FFFFFBFBF0F0'
# original: LIGHTEST='#FDFDF6F6E3E3'

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_background" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_colors" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/palette" --type string "#070736364242:#D3D301010202:#858599990000:#B5B589890000:#26268B8BD2D2:#D3D336368282:#2A2AA1A19898:#EEEEE8E8D5D5:$DARK_BG:#CBCB4B4B1616:#58586E6E7575:#65657B7B8383:#838394949696:#6C6C7171C4C4:#9393A1A1A1A1:$LIGHTEST"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "$DARK_BG"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/foreground_color" --type string "#65657B7B8383"

Nb. тут я перекреслив найтемніші та найсвітліші кольори соляризованого. Якщо ви хочете, ви можете використовувати оригінали, як коментують.

Досить добре. Тепер встановіть файл кольорів Solarized vim , помістивши його у ~.vim/colors/solarized.vim.

Тепер ви можете сказати Vim використовувати цю колірну гамму colo solarized. Але це не зовсім працює , і я повинен був сказати Vim використовувати 16 кольору палітру, set t_Co=16. Я зберег обоє з них у моєму ~/.vimrcфайлі.

Тепер кольори vim працювали, але не, якщо вони протікали всередині tmux.

Цей наступний біт дуже заплутаний. Більшість порад говорить про налаштування TERMпоза tmux до xterm-256colors, але коли я це зробив, tmux навіть не запускався. Це теж мене бентежило: чи не соляризовано сказано, що колірна палітра 256 є поганим наближенням? Ну, це заплутано, і в будь-якому випадку це не спрацювало, тому мені потрібен був інший шлях вперед:

Створіть файл, /tmp/fooщо містить:

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,

Потім встановіть це за допомогою sudo tic /tmp/foo

Нарешті, псевдонім tmuxнаступним чином:

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'

Тепер я отримую саме потрібні кольори в терміналі, in vim, і vim-inside-tmux. Nb. -2опція вказує tmuxвикористовувати 256 колірну палітру, яка дійсно заплутаною , оскільки змінні Env , здавалося б , кажучи це інакше ... Я дійсно не знаю, і я боюся , що я не дуже піклуються , щоб піднятися , що навчання крива, тому що зараз у мене є красивий кольоровий термінал, який просто працює.


set t_Co=16зробив трюк для мене. Перед встановленням цього параметра синтаксис підсвічування взагалі не працював.
Корактор

2
Забавно, скільки роботи потрібно зробити, щоб 16 текстових редакторів працювали в текстовому редакторі!

Примітка. Я знаходжу, що в терміналі Gnome 3.18.3 (в Ubuntu 16.04) це більше не працює - схоже, не приймає кольори і використання t_Co = 256 vim дає кращі результати.
artfulrobot

9

Я також знайшов цей проект:

https://github.com/sigurdga/gnome-terminal-colors-solarized

Дякую за поради :-)


1
Так і так! Скористайтеся цим сценарієм, не переймайтесь всім злому в прийнятій відповіді. Це "просто працює".
LondonRob

Чудово! Це набагато краще. Дякую.
wchargin

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