VIM поиск нескольких закрытых файлов - PullRequest
2 голосов
/ 08 января 2012

Время от времени мне нравится делать один быстрый поиск в каталоге, над которым я работаю, и находить все ссылки на определенную строку, особенно при отладке кода от кого-то еще.Разве VIM все еще не может выполнить такой поиск?Есть ли альтернатива сделать это напрямую с обычным терминалом?

ATM (так как я все еще изучаю VIM), я делаю поиск в TextMate и нахожу строку таким образом.

Ответы [ 4 ]

5 голосов
/ 08 января 2012

Вы можете использовать команду vim : vimgrep . При этом будет выполнен поиск шаблона в указанных файлах, и результаты будут помещены в окно quickfix , которое затем можно использовать для перехода к определенному совпадению. Например, для рекурсивного поиска foo в каждом файле .php в вашем текущем каталоге вы должны выполнить

:vimgrep "foo" **/*.php

Другим вариантом является команда : grep , которая фактически вызывает программу grep (или любую другую, установленную grepprg). Он также помещает результаты в окно quickfix для удобной навигации. Однако для этого необходимо, чтобы в вашей системе было grep.

4 голосов
/ 08 января 2012

vim редактор, а не искатель файлов. Тем не менее, тривиально просто вызвать оболочку и запустить grep. Предполагая, что вы находитесь в среде Unix-ish (TextMate - MacOs?). В командном режиме нажмите ctrl-z, и вы будете в приглашении оболочки, затем выполните

grep somestring *.c

и вы получите все совпадения для 'somestring' в любых исходных файлах C.

После того, как закончите grepping, просто выполните команду fg (передний план) и boom - обратно в VIM.

1 голос
/ 08 января 2012

vimgrep будет работать, но если источник находится в Git, вы можете использовать превосходный плагин tpope https://github.com/tpope/vim-fugitive, который предоставляет :Ggrep, который зависает от git grep для большей гибкости.

Если вам нужны конкретные объекты (функции, переменные и т. Д.), То интеграция с ctags, вероятно, также будет интересна вам.

0 голосов
/ 08 января 2012

Похоже, вы хотели бы взглянуть на функциональность поиска тегов vim в сочетании с ctags.ctags - это утилита, которую можно использовать для создания индекса (файла тегов) различных языковых объектов для исходного кода (полное дерево проекта, а не просто каталог).В vim тег является своего рода идентификатором, к которому можно перейти или выполнить поиск.

См. Документацию vim:

     :help tagsrch

Или:

http://vimdoc.sourceforge.net/htmldoc/tagsrch.html#ctags

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...