Я хочу знайти кілька рядків у Vim / gVim і виділити їх різними кольорами. Чи можна це зробити за допомогою нестандартного Vim або за допомогою плагіна?
Я хочу знайти кілька рядків у Vim / gVim і виділити їх різними кольорами. Чи можна це зробити за допомогою нестандартного Vim або за допомогою плагіна?
Відповіді:
Існує два простих способи виділити кілька слів у редакторі vim.
Перейдіть у режим пошуку, тобто введіть ' / ', а потім введіть \ v, а потім слова, які потрібно шукати, розділені знаком ' | '(труба).
Наприклад:/\vword1|word2|word3
Перейдіть до режиму пошуку та введіть слова, які ви хочете здійснити, відокремлюючи ' \ | '.
Наприклад:/word1\|word2\|word3
В основному перший спосіб переводить вас у режим регулярних виразів, так що вам не потрібно ставити зайві скісні риски перед кожною трубою чи іншими роздільниками, що використовуються для пошуку.
Це можна зробити вручну, без будь-якого сценарію, для двох моделей пошуку.
:match Search /pattern/
:match Search /<CTRL-R>/ # highlight the current search pattern
Пошук - це назва групи виділення, за допомогою завершення виберіть іншу групу, яку потрібно виділити іншим кольором.
:match <TAB>
:match <TAB> # completion will list all highlight group
Це зручно, коли ви не можете використовувати власну конфігурацію vim.
:match none # clear the match pattern to stop highlighting
Для пошуку декількох рядків у vim ви можете зробити, як:
/search1\|search2
Це працює, і виділить обидва search1
і search2
, але з однаковим кольором. Ви повинні зробити це у редакторі vim.
Так, нестандартно ви можете використовувати matchadd()
.
Щоб додати виділення, напр. для кінцевих пробілів:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)
Щоб переглянути всі збіги:
:echo getmatches()
Для видалення сірників використовуйте matchdelete()
. Наприклад:
:call matchdelete(7)
MultipleSearch : виділіть кілька пошуків одночасно, кожен з різним кольором.
http://www.vim.org/scripts/script.php?script_id=479
:Search <pattern1> //will highlight all occurences of <pattern1> in the current buffer.
A subsequent :Search <pattern2> will highlight all occurences of <pattern2> in the current buffer.
MultipleSearch2 - це ще один скрипт, інтегрований із пошуком vim: http://www.vim.org/scripts/script.php?script_id=1183
Я віддаю перевагу підсвічуваному плагіну, простому і достатньому, який може автоматично виділяти різні слова різними кольорами.
\+m
(або двічі клацніть) на кожному слові, яке ви хочете (не) виділити. І ви отримуєте інший колір кожного разу.