Pull to refresh

Comments 22

А что за шрифт и цветовая схема на скринах?
Шрифт Monaco — моноширный шрифт по умолчанию в Mac. Цветовая схема wombat
Вообще полезная статья, теперь можно подсвечивать собственные классы и функции, спасибо!
Для этого есть специальные плагины, TagHighlight например.
Не мешало бы упомянуть, что в vim шикарная встроенная документация, в частности исчерпывающая информация по сабжу доступна в :help syntax.
Да, думаю, большинству известно что справка у Vim весьма обширная и качественная.
И тем не менее, даже после статьи и прочтения vim +«help highlight-link», я не понимаю как работаю link'и и как в итоге эти группы применяются. Разъясните пожалуйста.
:hi — отвечает, по сути, за представление подсветки ситнаксиса. В цветовых схемах используется следующий формат команды:

hi StatusLine   guifg=#f6f3e8 guibg=#444444 gui=italic
hi Comment              guifg=#99968b gui=italic

Определяет стиль региона StatusLine как заданный цвето текста (guifg), цвет фона (guibg) и стиль начертания (gui). Стилем может быть любой идентификатор, но есть соглашение про несколько стандартных: что стиль Keyword обычно отвечает за ключевые слова, а Comment — за коментарий. Но вообще можете задать любо имя, хот PesNaLdine.

Далее, в описании подсветки вы задаете сначала стили с именами привязанными к структуре языка — например pascalFuncionCall, pascalCompilerOptions, и т.д. А далее задается «представление», путем отображения языковых стилей, на общие стили, которые определены в ваших цветовых схемах:

hi link pascalFunctionCall Function
hi link pascalCompilerOptions PreProc

Подсвечивает регион pascalFunctionCall как регион Function, а pascalCompilerOptions как регион PreProc. Просто стиль слева берется целиком из стиля справа. Так как обычно в языках много конструкций, а в цветовых схемах определены только общие для всех языков конструкции, на один стиль часто ссылается несколько названий регинов разметки (как у меня в примерах — стили ключевых слови экранирующих символов «привязоны» к одному и томуже стили из цветовых схем Keyword).

В таком случае в хелпе я не нашёл полного перечня стилей (тех самых ключевых слов, которые в итоге и задают цвет текста). Какие-то файлы, судя по всему цветовых схем обнаружил тут (/usr/share/vim/vim72/colors/). Однако default.vim практически пустой.

Правильно ли я понял, что могу задать свой цвет с абсолютно любым именем, и как только я его свяжу (link) с каким либо keyword или region или еще чем, то эти самые куски текста будут подсвечены указанным мной стилем?

И всё же хотелось бы базировать свою раскраску на стандартной, где её можно увидеть?
>что могу задать свой цвет с абсолютно любым именем

Верно.

>И всё же хотелось бы базировать свою раскраску на стандартной, где её можно увидеть?

hi Comment              guifg=#99968b gui=italic
hi Todo                 guifg=#8f8f8f gui=italic
hi Constant     guifg=#8a11a8 gui=none
hi String               guifg=#95e454 gui=italic
hi Identifier   guifg=#cae682 gui=none
hi Function     guifg=#cae682 gui=none
hi Type                 guifg=#cae682 gui=none
hi Statement    guifg=#8ac6f2 gui=none
hi Keyword              guifg=#8ac6f2 gui=none
hi PreProc              guifg=#e5786d gui=none
hi Number               guifg=#e5786d gui=none
hi Special              guifg=#e7f6da gui=none
hi Delimiter    guifg=#e5786d gui=none

Вот отсюда черпай названия и «линкуй» свои навзания к этим.
Статья мне показалась похожей на пересказ хелпа, возможно просто читал не слишком внимательно. По крайней мере одна тема из хелпа в статье не рассматривается (синхронизация подсветки при редактировании).
UFO just landed and posted this here
Смогу ответить, если вы скажете, как определить «вот это строка». Ведь вы файл редактируете, а значит опираться на оффсет по символам нельзя. Да и как сохранить эту информацию в файл? Идея умеет получать эту информацию на основе полного семантического анализа. Однако, если это легко регекспами получить — то можно сделать так (например подсвечивать во всех строках):

:syn region start=/"/ end=/"/ contains=sqlKeyword,sqlOperator,sqlStatement,sqlFunction,sqlNumber,sqlType
UFO just landed and posted this here
>знаю. нечестно, правда?

Да ничего нечестного. Просто (лично мне) вим нравится легкостью, которая убивается таким вот инструментарем.

>ну как-как. внутри кавычек, натурально.

Так я этот вариант и привел. Только внутри кавычек может быть и не SQL — а XPath или просто строка.
UFO just landed and posted this here
Ключевые слова подсветит.Но, строку в заэскейплиных ковычках, очевидно, не переварит, можно и это сделать, только зачем.
UFO just landed and posted this here
Там опечатки «давайте раскарасим некотрое подмножество язык javascript:». Особенно порадовало слово «раскарасим».
Спасибо за минусы, друзья. Я всего лишь хотел указать на опечатку.
Минусуют потому, что сообщения об опечатках замусоривают коментарии, так как устаревают сразу же после правки, и поэтму их принято слать автору в личку. А для того чтобы слать в личку было удобно, стоит поставить расширение для хрома, которое будет слать сообщение автоматом по Ctrl+Enter
Sign up to leave a comment.

Articles