отдельные поиски в windows в VIM - PullRequest
5 голосов
/ 22 июня 2009

Когда я делю VIM, чтобы показать мне несколько файлов или разные части одного и того же файла, могу ли я выполнить один поиск в одном окне и другой поиск в другом? Например, я бы хотел, чтобы в верхнем окне был шаблон поиска foo, а в нижнем окне - шаблон поиска bar.

Активный шаблон поиска влияет на то, что подсвечивается при использовании подсветки поиска, и это довольно раздражает, когда у меня подсвечивается foo в верхнем окне, а затем я переключаюсь в нижнее окно и ищу bar и foo перестает выделяться в верхнем окне.

Редактировать: Этот вопрос , похоже, связан, хотя я не уверен, что это точный дубликат.

Ответы [ 2 ]

6 голосов
/ 22 июня 2009

Я использую этот скрипт для выделения нескольких шаблонов поиска.

4 голосов
/ 22 июня 2009

Ответ Canopus, вероятно, самый хороший способ сделать это, если вы используете это часто, но если вы хотите сделать это с помощью установки vanilla vim (или более того, без установки каких-либо плагинов), вы можете просто сделать :

:call matchadd('Search', 'foo')
:call matchadd('Search', 'bar')

Затем вы можете очистить все совпадения с помощью

:call clearmatches()

Есть также способы быть более разборчивыми в том, что вы очищаете (с помощью :call matchdelete(...)), сохраняя вывод matchadd в переменную. Вы можете прочитать больше об этом в :help matchadd() и :help matchdelete()

Если вы не используете слишком сложный файл синтаксиса (и, в частности, не используете подсветку rainbow.vim), вы, вероятно, также можете сделать это с помощью:

:syn keyword Search foo
:syn keyword Search bar

и очистите его с помощью

:syn clear Search

Единственное возможное преимущество, о котором я могу подумать, это то, что если вы пытаетесь выделить лот совпадений, выделение keyword будет намного быстрее, чем match выделить (так как последний использует поиск по регулярному выражению). Вы все еще можете сделать syn keyword матч, если вы используете rainbow.vim, но команда намного сложнее.

...