Как получить соляризованную цветовую схему, работающую с gnome-terminal, tmux и vim?


25

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

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

Тогда у меня были соляризованные цвета, работающие в vim OK-ish, но были некоторые странные черные фоны, появляющиеся при определенной подсветке. Как только я это исправил, я пошел дальше ...

Затем я понял, что vim go v. Wonky однажды бегает внутри tmux. Это массово обсуждается, но очень немногие из ответов (которые в основном говорят о создании TERMв xterm-256colors) работал для меня. В конце концов я тоже это исправил.

Соляризация - очень хорошая палитра (хотя я затемнил самый темный базовый цвет и осветил самый светлый, так как я предпочитаю более высокий контраст, и обнаружил, что «белый» 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"

В северном направлении здесь я переопределил самые темные и самые светлые цвета Solarized. Вы можете использовать оригиналы, если хотите, как прокомментировано.

Достаточно хорошо. Теперь установите файл Solarized vim colors , поместив этот файл в ~.vim/colors/solarized.vim.

Теперь вы можете сказать Vim использовать эту цветовую схему с colo solarized. Но это не совсем сработало, и мне пришлось сказать Vim использовать 16-цветную палитру set t_Co=16. Я сунул оба из них в мой ~/.vimrcфайл.

Теперь Vim Colours работает, но не в том случае, если он работает внутри 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'

Теперь я получаю абсолютно правильные цвета в терминале, в vim и в vim-inside-tmux. В северном направлении -2опция указывает tmuxиспользовать 256 цветовую палитру, которая действительно запутанной , поскольку переменные Env , казалось бы , говоря это иначе ... Я действительно не знаю, и я боюсь , что я не очень заботятся , чтобы подняться , что обучение кривая, потому что теперь у меня есть красивый цветной терминал, который просто работает.


set t_Co=16сделал трюк для меня. До установки этой опции подсветка синтаксиса вообще не работала.
Koraktor

2
Забавно, сколько работы нужно сделать, чтобы заставить 16 цветов работать в текстовом редакторе!

Примечание: я обнаружил, что в Gnome Terminal 3.18.3 (в Ubuntu 16.04) это больше не работает - кажется, не принимает цвета, и использование vim's t_Co = 256 дает лучшие результаты.
artfulrobot

9

Я также нашел этот проект:

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

Спасибо за советы :-)


1
Да да и да! Используйте этот скрипт, не беспокойтесь обо всем взломе в принятом ответе. Это "просто работает".
LondonRob 15.07.15

Замечательно! Это намного лучше. Спасибо.
wchargin

На некоторых установках это работает. На некоторых это слишком синий.
JohnMudd
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.