Подтвердить что ты не робот

Vim выделяет список слов

Мне нужно выделить список слов в vim, желательно, чтобы слова определялись в файле. Немного похоже на проверку орфографии. Я смотрел http://vim.wikia.com/wiki/Highlight_multiple_words, но для этого требуется, чтобы я определял каждое слово как новую позицию и не поддерживал сохранение слов в файле ( хотя они сохраняются).

4b9b3361

Ответ 1

Вы можете использовать команду :match.

:match Todo /word1/

Первым параметром команды является группа выделения (для просмотра всех доступных групп :highlight). Второй параметр - шаблон поиска.

Вы можете поместить их в любой файл и загрузить его через :source.

Другой способ - изменить регулярное выражение (спасибо @zpon):

:match Todo /word1\|word2\|word3/

Если вы хотите выделить их по-разному:

:match Todo /word1/
:2match Error /word2/
:3match Title /word3/

Ответ 2

Я бы рекомендовал использовать для этого syn keyword. Существуют и другие варианты, такие как :match, как предлагается michael.kebe и syn match и т.д., Но все они основаны на регулярных выражениях. Недостатком этого является то, что по мере увеличения количества слов, которые вы хотите совместить, скорость Vim уменьшается. Макросы ключевых слов намного быстрее. Вы также можете легко определить несколько ключевых слов в строке (хотя в строке есть ограничение примерно на 512 символов, если память мне правильна).

syn keyword Todo word1 word2 word3
syn keyword Todo word4
syn keyword Todo word5

Поместите эти строки в любой файл и :source или выгрузите его в свой ~/.vim/after/syntax/c.vim, чтобы он был source d автоматически для всех файлов C (выберите файл синтаксиса для интересующего вас типа файла).

Как и в случае с ответом michael.kebe, первым параметром (Todo в этом случае) является группа выделения. Вы можете создать свою собственную группу, если хотите, и определить выделение:

syn keyword MyHighlightGroup word6 word7
" Then EITHER (define your own colour scheme):
hi MyGroupName guifg=Blue ctermfg=Blue term=bold
" OR (make the colour scheme match an existing one):
hi link MyGroupName Todo

Ответ 3

: соответствие Todo/\ <\(word1\| word2\| word3 \) \ > /