Вот простой способ сделать это:
в vim, убедитесь, что подсветка синтаксиса включена :syn on
введите команду :highlight
, чтобы получить список всех th e выделите имена групп и образцы того, на что они похожи. Error
группа выглядит, как он выделяется хорошо в моем ColorScheme, так что я буду использовать это в моем примере (но вы можете использовать любой из других имен, как Todo
или Search
)
:syntax match Error /\[Capítulo[^\]]*\]/
Эта модель будет держать вас от жадного соответствия самого большого куска. Несмотря на то, что другие люди предлагают вам использовать регулярное выражение /\[Capítulo.*\]/
- это, вероятно, не то, что вы хотите, потому что оно будет соответствовать всем между ними, если на линии есть два или более таких шаблона.
Например /\[Capítulo.*\]/
будет соответствовать всю эту строку:
[Capitulo Foo] эти слова не должны быть выделены [Capitulo бар]
Тот же самый пример, но с /\[Capítulo[^\]]*\]/
соответствует только материал внутри []:
[Capítulo foo] эти слова не должны быть выделены [Capitulo бар]
С помощью регулярных выражений, это обычный прием, чтобы сделать группу, которая соответствует всем, кроме символа, который вы хотите, чтобы закончить матч, вместо того, чтобы использовать .*
который будет соответствовать как можно большему количеству символов. В этом случае мы делаем группу [^\]]*
- которая говорит «матч все, кроме]».
Если это работает так, как вы хотите его, добавьте строку матча синтаксиса без «:
» на ваш .vimrc
Если вы наберете /\[Capitulo.*\]/, что произойдет? – ojblass
Также хотите, чтобы скрипт был прав? Clarifiy, что в quesiton или каждый ответ будет таким же! – ojblass