Вы можете использовать команду Vim grep для поиска всех файлов в вашем проекте:
:grep! "\<<cword>\>" . -r
:copen
Давайте поместим это в связку ключей:
nnoremap <F4> :grep! "\<<cword>\>" . -r<CR>:copen<CR>
Я нахожу этот поиск по всему проекту одним ключом неоценимым, когда исследую большую незнакомую кодовую базу.
\<
и \>
являются регулярными выражениями, которые указывают начало и конец слова, поэтому вы не получите частичных совпадений. ( -w
Опция grep может быть другим способом достижения этого.)
Однако это неразумный поиск , поэтому он может давать ложные срабатывания, если одно и то же слово появляется в несвязанных контекстах.
По правде говоря , я использую мою собственную модифицированную версию плагина grep.vim . Это немного удобнее использовать:
- Он позволяет вам редактировать шаблон поиска, а также командную строку grep (чтобы вы могли ориентироваться на определенные папки, например,
src/ lib/
вместо .
) и запоминать изменения.
- Я добавил поддержку Google's Csearch . Это может быть намного быстрее, чем grep, потому что он строит индекс слов, а не сканирует каждый файл каждый раз. Примечательно, что csearch использует немного другой стандарт регулярных выражений, поэтому
\b
должен использоваться вместо \<
и \>
.
Я настраиваю его и исключаю некоторые стандартные файлы, подобные этому .
Для быстрого доступа я создаю две комбинации клавиш . F3позволяет мне редактировать командную строку, F4использует предварительно настроенную командную строку без каких-либо дополнительных нажатий клавиш. Механизм довольно уродливый, и может использовать некоторую очистку, но он мне хорошо послужил.