Как стать автором
Обновить

Работа с цветом в vim

Время на прочтение3 мин
Количество просмотров14K
Казалось бы текстовый редактор не предназначен для работы с цветовыми палитрами, обычно для этого используют специальные программы, одной из неплохих программ подобного рода, например, является GPick.
Специализированные программы для редактирования html в лучшем случае предлагают простой диалог для выбора цвета из списка или цветового круга. Но vim и здесь демонстрирует выдающиеся качества — расширяемость, универсальность и способность работать без мыши, с одной клавиатурой. 

Плагинов, работающих так или иначе с цветом для vim существует несколько, но мне показались удобными всего два. О них и пойдёт речь далее. Все плагины, о которых далее идёт речь, работают только с графической версией редактора, что и понятно. Консольная версия редактора цвета в формате rgb отображать не может.

Отображение цветов внутри буфера-HexHighlight


HexHighlight — очень простой плагин, который просто заменяет коды цветов цветными прямоугольниками.
По умолчанию плагин использует комбинацию клавиш в качестве триггера — вкл/выкл.
Если посмотреть текст плагина, то в первых строках мы увидим строчку:
map :call HexHighlight()



Теперь, при необходимости можно переопределить эту комбинацию на любую удобную, либо прямо в тексте плагина, либо в .vimrc.

Примечание. Под клавишей leader по умолчанию vim понимает клавишу <\> (backslash). Она часто используется разными плагинами, если конечно вы её не переопределили в .vimrc с помощью строки
let mapleader =¨символ¨.

Редактирование палитры


Для редактирования набора цветов можно найти несколько плагинов для vim. Есть несколько плагинов, которые вызывают стандартный диалог выбора цвета библиотеки gtk, и вставляют код выбранного цвета в текущий буфер. Это полезный функционал, но он не делает главного - возможности увидеть как выбранные цвета будут сочетаться друг с другом.
Вот как раз эту задачу и решает плагин colorsel.vim. Как написано в документации это простой интерактивный RGB/HSV color selector. Авторы - David Necas (Yeti) и Ingo Karkat.

Для запуска плагина достаточно набрать команду :ColorSel, в качестве параметров можно указать пару цветов для фона/текста, причём их можно задать как в виде кодов, так и в виде имен например так:

:ColorSel black teal
после чего откроется окно с редактором палитры. редактор палитры позволяет редактировать пару цветов фон/text в формате rgb\hsv и сохранять их в палитру. В нижней части окна показываются все клавиатурные комбинации, которые могут быть использованы для работы с плагином, поэтому освоить работу с плагином совсем нетрудно.



ColorSel хранит текущую палитру в именованных регистрах vim "a-"l, получается, что по умолчанию она содержит 12 цветов, чтобы убедиться в этом достаточно просмотреть содержимое регистров vim с помощью команды :registers
И поэтому, если вы поместите в регистр код цвета, неважно даже из какого буфера, то при переходе в окно плагина он попадёт в палитру, и наоборот если вы вставите содержимое регистра в буфер, то очевидно, в положении курсора вставится код цвета.

Несколько замечаний о подборе цветов.


Видимо наиболее удобный способ подбора цветов заключается в использовании формата hsv. Для начала нужно выбрать тон для фона, его яркость и насыщенность, после чего выбрать тон текста, с помощью плагина ColorSel можно легко увидеть, какие пары цветов выглядят приемлемо, затем, для цвета текста нужно отрегулировать яркость и насыщенность -так чтобы был достигнут необходимый контраст.

Если для текста нужно подобрать более одного цвета, то проще всего это сделать изменяя только тон, и без необходимости не изменяя насыщенность и контраст. В этом случае палитра будет более однородной, и, соответственно, заверстанный в такой палитре текст будет смотреться лучше - так как контраст будет почти одинаковым. Правда в слове "почти" кроется следующий смысл: если вы используете для текста соседние по тону цвета, то их контраст будет также похожим, а если нет - то небольшая корректировка контраста всё же потребуется.

Ссылки

  1. Редактор палитр gpick - http://www.gpick.org/
  2. hexHighlight.vim - http://www.vim.org/scripts/script.php?script_id=2937
  3. colorsel.vim  - http://www.vim.org/scripts/script.php?script_id=927
Теги:
Хабы:
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Публикации