Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

Ответ 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 ключевое слово , если используете rainbow.vim, но команда намного сложнее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top