Тёмная тема для GVim

Работая с vim из командной строки, как правило по умолчанию уже имеем дело с тёмной темой. Даже если это не так, то сделать тёмный терминал и выбрать тёмную тему разметки синтаксиса не составит проблемы для опытного пользователя.

С GVim ситуация обстоит немного сложнее. Область текста окружают виджеты GTK2 и цветные значки на панели инструментов. Именно поэтому в своё время отказался от использования тёмной темы.

Вот что получится в результате тюнинга GVim:

Подготовка

Для начала выбираем самую удобную цветовую тему для области редактирования и разметки синтаксиса. Я выбрал darkspectrum и немного допилил под себя ( my_darkspectrum.vim)

Для тех кто не в курсе, цветовые темы надо копировать в каталог: ~/.vim/colors/

Теперь выбираем подходящую тему для gtk2. Их есть большой выбор на gnome-look.org. Я остановился на Elegant Dark Flat. Разместил в каталоге ~/.vim/gtk как показано на рисунке слева. Можно разместить в любом другом месте. Для создания нового профиля понадобится файл gtkrc, в моём случае — ~/.vim/gtk/Elegant-Dark-Flat/gtk-2.0/gtkrc

Наконец понадобятся новые значки для тулбара. Тоже можно поискать на сайтах семейства “*-look.org”. Остановился на Evolvere Icon theme.

В справке vim-а есть раздел “toolbar-icon”, где можно найти требования к значкам:

  1. Должны располагаться в каталоге ~/.vim/bitmaps
  2. Формат xpm или bmp
  3. Размер 18x18
  4. Название файла должно совпадать с названием кнопки

Для выполнения требований пунктов 2 и 3 необходимо выполнить преобразование. Я это сделал вручную: выбрал подходящие иконки из коллекции 16x16, и с помощью gimp увеличил до 18x18 и сохранил в формате xpm в каталог ~/.vim/bitmaps/

Чтобы найти названия пунктов меню можно выполнить в vim-е команду “:menu” или в системном конфиге vim-а: /usr/share/vim/vim74/menu.vim:

Мои значки можно взять здесь: bitmaps.tar.gz

Создание профиля

По умолчанию для GVim оставляю старую светлую тему, а для тёмной будет сделан отдельный профиль и скрипт запуска.

Основной конфиг vim-а располагается в файлах ~/.vimrc и ~/.gvimrc. Для цветовых профилей сделал еще 4 вспомогательных конфига:

colorscheme my_darkspectrum
let g:airline_theme="jellybeans"
colorscheme my_github
let g:airline_theme="sol"
colorscheme my_xoria256
let g:airline_theme="wombat"
set bg=light
colorscheme plum
let g:airline_theme="sol"

В ~/.vimrc ставлю загрузку ~/.vim/vimrc-dark:

" ...
source ~/.vim/vimrc-dark
" ...

В ~/.gvimrc ставлю загрузку ~/.vim/gvimrc-dark

" ...
source ~/.vim/gvimrc-light
" ...

Для настройки темы gtk применим особую уличную магию: переменная окружения  “GTK2_RC_FILES”. Можете попробовать перед запуском gvim или любого другого приложения с gui на gtk2, указать свою тему:

GTK2_RC_FILES=~/.vim/gtk/Elegant-Dark-Flat/gtk-2.0/gtkrc gvim

Остаётся создать скрипт для запуска GVim с тёмной цветовой схемой и тёмной схемой GTK. Этот скрипт тоже положил в ~/.vim/run-gui-dark.sh:

#!/bin/bash
GTK2_RC_FILES=~/.vim/gtk/Elegant-Dark-Flat/gtk-2.0/gtkrc gvim -c 'source ~/.vim/gvimrc-dark'

Не забываем поставить атрибут выполнения:

chmod +x ~/.vim/run-gui-dark.sh

Теперь каждый рабочий день начинаю с: ~/.vim/run-gui-dark.sh