Vim выделите список слов - PullRequest
       2

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

18 голосов
/ 12 ноября 2010

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

Ответы [ 3 ]

38 голосов
/ 12 ноября 2010

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

:match Todo /word1/

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

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

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

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

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

:match Todo /word1/
:2match Error /word2/
:3match Title /word3/
16 голосов
/ 12 ноября 2010

Я бы порекомендовал вам использовать 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 (выберите файл синтаксиса для интересующего вас типа файла)..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
0 голосов
/ 30 марта 2016

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

...