Как я могу создать свою собственную цветовую схему?

16

Какие файлы мне нужно создать? Что должно быть внутри этих файлов? Есть ли где-нибудь файл схемы цветов по умолчанию, который я могу использовать и соответственно изменять значения цвета?

dkns
источник

Ответы:

15

Расположение цветов

Во-первых, Vim ищет в своих папках времени выполнения colorsкаталог. Здесь должны храниться все схемы цветов ( :help 'runtimepath')

Это означает, что вам понадобится один файл, который находится в ~/.vim/colorsпапке. Цветовые схемы по умолчанию находятся в $VIMRUNTIME/colors, где $VIMRUNTIMEобычно /usr/share/vim/vim74или в /usr/local/share/vim/vim74каталогах, в зависимости от того, как установлен Vim (замените vim74 на vim73 для Vim версии 7.3)

Теперь перейдем к интересной части.

Создание схемы цветов

Чтобы начать создавать собственную цветовую схему, я настоятельно рекомендую взглянуть на стандартные цветовые схемы и поэкспериментировать с их изменением.

Поэтому скопируйте цветовую схему по умолчанию из $VIMRUNTIME/colorsпапки в вашу ~/.vim/colorsпапку. Назовите это чем-то, что отличает себя от имени цвета по умолчанию. Поэтому, если вы скопировали desertцветовую схему, которая поставляется с Vim по умолчанию, назовите файл как default_mod.vimили что-то в этом роде. Откройте файл colorscheme и измените его, let g:colors_nameчтобы он также отличался от стандартного файла colorscheme. По соглашению это должно совпадать с именем файла colorscheme.

В ColorScheme, все , что вам нужно сделать , это дать цвета для ctermbg, ctermfg, guibg, guifg(для терминала фона, терминал на первый план графического интерфейса фона, Gui цвета переднего плана соответственно) для различного встроенных в кульминационных группах. Чтобы просмотреть список групп подсветки, которые вы можете изменить, посмотрите :help highlight-default. По желанию, вы можете также использовать ctermи guiатрибуты , чтобы указать , что вы хотите выделить группу , чтобы быть полужирным шрифтом или курсивом.

Например, это установит зеленый цвет для строки:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

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

Например, вы можете связать группу diffAddedвыделения с группой выделения строки, определенной выше:

highlight link diffAdded String

Акшай
источник
Если я просто скопирую один из файлов colorscheme.vim и поместу его в отдельную папку, смогу ли я использовать его на других своих компьютерах? Например, если я помещу это в репозиторий на github, смогу ли я просто клонировать его или включить в одном из менеджеров плагинов?
dkns
@dkns, Да, точно. Например, вы можете назвать вашу цветовую схему как "dkns_colorscheme.vim", поместить ее в каталог colors / и затем отправить ее в Github. Если у вас установлен менеджер плагинов, клонирование этого репо сделает цветовую схему доступной для Vim.
Акшай
Другой вопрос. Не уверен, стоит ли мне публиковать это здесь в качестве комментария или задать другой общий вопрос. Как я могу найти значения цвета для cterm? Я хотел бы, чтобы эта тема выглядела одинаково на графическом интерфейсе и терминале, но я не знаю, как преобразовать шестнадцатеричные значения в значения cterm.
августа
1
@dkns Поскольку цвета терминала во многом зависят от цветовой палитры, используемой в эмуляторе терминала, это довольно сложно сделать. Когда я создавал свою цветовую схему, мне было полезно показать, как выглядит каждый из 256 цветов. Я использую этот маленький скрипт в папке bin. Вы можете просто использовать палитру цветов, чтобы затем выбрать цвета, чтобы обеспечить одинаковые цвета gui и cterm. Я бы пошел от cterm-> gui, а не наоборот, так как в gui vim больше цветов. Надеюсь, это поможет.
Акшай
7

Проверьте сайты, такие как Vivify и Villustrator . Они в основном позволяют графически создать или настроить схему, а затем загрузить необходимые файлы.

Коллин Питерс
источник
0

Есть несколько инструментов, чтобы сделать это автоматически:

  • vivify : довольно сложный, вы должны вручную выбрать каждый цвет для каждой отдельной группы подсветки.
  • vimcolors.org : очень просто и легко. Просто выберите несколько цветов, и он автоматически сгенерирует схему для вас.
pablopunk
источник
0

Еще один замечательный инструмент - RNB от romainl, который использует ERB . ERB (Embedded RuBy) - это функция Ruby, которая позволяет генерировать текст из шаблонов.

Таким образом, использование этого инструмента довольно просто: во-первых, вам нужно определить различные переменные, соответствующие номенклатуре вашей схемы цветов и, конечно же, ее фактическому содержанию (как должны выглядеть цвета, какие группы вы хотите использовать и т. Д.). довольно просто, потому что автор написал много комментариев, чтобы помочь вам. Тогда все, что вам нужно сделать, это передать свой настроенный шаблон в erb, и инструмент сгенерирует нужные файлы.

statox
источник