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

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

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


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



Теперь, при необходимости можно переопределить эту комбинацию на любую удобную, либо прямо в тексте плагина, либо в .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

Комментарии (11)


  1. Delphinum
    27.08.2015 23:35
    +9

    Чет последнее время участились статьи по Vim. Это не может не радовать старого Vim'ушника )


    1. piratarusso
      28.08.2015 16:15

      Спасибо, vim этого заслуживает…


  1. axce1
    28.08.2015 09:37

    vim-css-color получше будет HexHighlight будет, имхо


    1. piratarusso
      28.08.2015 16:17

      А чем?


  1. matiouchkine
    28.08.2015 10:43

    > Консольная версия редактора цвета в формате rgb отображать не может.
    ЛОЛШТО?


    1. dimas
      28.08.2015 14:35

      Просто не все знают как заставить консольную версию работать с 256 цветами…


      1. Delphinum
        28.08.2015 14:49
        +2

        Думаю не все знаю, зачем заставлять консольную версию работать с 256 цветами.


        1. dimas
          28.08.2015 14:57
          -1

          Очень осмысленный коммент в топике «работа с цветом».


          1. Delphinum
            28.08.2015 15:05

            Что с ним не так?


        1. matiouchkine
          28.08.2015 15:39

          Глаза-то не казенные, а окошки противные.


          1. Delphinum
            28.08.2015 16:46

            Ну тоже верно.