Есть ли простой способ настроить цвета, используемые vim и bash? Значения шестнадцатеричного цвета, например?
4 ответа
vim
поддерживает схемы цветов. Вы либо используете и / или устанавливаете одну из множества доступных схем, либо пишете свою.
bash
- это просто оболочка для выполнения программ. Отображение оболочки и ее вывод происходит внутри терминального приложения, которое может поддерживать цвета. Если вы, например, используете gnome-terminal
вы можете изменить цвета по умолчанию, используемые в меню «Правка» -> «Профили».
Многие терминальные приложения могут быть настроены на использование цветного вместо монохромного вывода, см., Например, ответ Moshen.
Здесь есть несколько вещей, которые нужно прояснить:
Bash - это оболочка, которая сама по себе не так важна для управления цветом, это скорее вопрос терминала (gnome-терминал, rxvt, xterm и т.д.). Терминалы обычно имеют 16, 88 или 256 цветовых палитр, которые являются предопределенными цветами, которые он может отображать на консоли. Каждый цвет имеет номер от 0 до 15/87/255. Некоторые терминалы позволяют вам настраивать, какие конкретные цвета RGB назначаются каким номерам, но обычно это 0 для черного, 1 для красного и т.д.
Что касается vim, вы имеете в виду vim или gvim (приложение с графическим интерфейсом)? Они настроены по-разному в зависимости от цвета. Vim позволяет вам выбрать, какой из доступных (пронумерованных) цветов терминала назначен какому типу текста (обычный текст, текст комментария, визуально выбранный текст и т.д.). Посмотрите справку vim по командам "colorscheme" и "highlight". В терминальных приложениях вы ограничены цветами, доступными на вашем терминале (см. Выше), но можете назначать их свободно, определяя собственную цветовую схему.
С другой стороны, Gvim, как правило, позволяет вам указывать цветовые тройки RGB и, таким образом, обладает гораздо большей гибкостью по сравнению с вашей цветовой схемой.
Например, в gvim это установит ваш "обычный" цвет текста в произвольный шестнадцатеричный триплет RRGGBB:
:hi Нормальный guifg = # 123456
В то время как в vim, это установит ваш "нормальный" цвет текста на цвет терминала 1, который обычно является красным:
: привет нормальный ctermfg = 1
Ваше терминальное приложение (xterm, gnome-terminal, rxvt) может затем позволить вам настроить то, что на самом деле означает "красный", с точки зрения RGB. Некоторые люди, например, считают, что по умолчанию "синий" в терминальных приложениях слишком темный для чтения, поэтому настройте его, чтобы он был ярче.
Цвета, используемые bash, действительно используются конкретными приложениями в bash. Цвета, используемые LS, можно изменить, изменив переменную LSCOLORS. В вашем ~/.bashrc вы бы добавили что-то вроде:
export LSCOLORS=ehfacxdhbhegedabagacad
export GREP_COLOR='00;38;5;157;48;5;226'
так далее...
Цвета VIM можно изменить, просто указав тему.
Другое приложение, которое позволяет выбирать цвета для его вывода, - это [less][1]
. Если это пейджер, который вы используете для man
то эти цвета чаще всего будут видны при просмотре man
страниц. Вы можете увидеть значение кодов termcap
таких как "mr" (обратное видео) и "md" (полужирный), запустив man 5 terminfo
и выполнив поиск кода. Цветовые коды можно найти в разделе "Обработка цвета" этой справочной страницы.
Пример настроек:
LESS_TERMCAP_ZN=
LESS_TERMCAP_ZO=
LESS_TERMCAP_ZV=
LESS_TERMCAP_ZW=
LESS_TERMCAP_mb=$'\E[1m\E[38;5;2m'
LESS_TERMCAP_md=$'\E[1m\E[38;5;6m'
LESS_TERMCAP_me=$'\E[m\E(B'
LESS_TERMCAP_mh=
LESS_TERMCAP_mr=$'\E[7m'
LESS_TERMCAP_se=$'\E[27m\E[m\E(B'
LESS_TERMCAP_so=$'\E[1m\E[38;5;3m\E[48;5;4m'
LESS_TERMCAP_ue=$'\E[24m\E[m\E(B'
LESS_TERMCAP_us=$'\E[4m\E[1m\E[38;5;7m'