2016-07-15 4 views
9

Есть несколько вещей, которые я еще не понимаю, как VIM.Как мне искать во всех файлах моего проекта с помощью VIM?

Один из них ищет в проекте как так (с использованием VIM в Atom):

enter image description here

Я использую CtrlP в настоящее время для имен файлов, но как насчет содержания?

Как я могу выполнить поиск со строкой, а затем просмотреть список всех вхождений с помощью модулей VIM и/или VIM?

+2

Установите [извед] (http://beyondgrep.com/) и/или [Ag] (http://geoff.greer.fm/ag/), и с помощью [CtrlSF] (https://github.com/dyng/ctrlsf.vim). Вы не оглядитесь назад. –

ответ

12

Я нашел даже лучшее решение для этого: FZF

Он просто просматривает все, что в вашем проекте асинхронно с помощью команды :Ag.

enter image description here

+0

Примечание: для этого необходимо установить silver_searcher, а также https://github.com/ggreer/the_silver_searcher –

6

Используйте :grep или :vimgrep для поиска содержимого файла. Результаты помещаются в «список местоположений», который вы можете открыть, набрав :cwВведите.

Синтаксис :grep, по умолчанию, то же самое, что и команда grep(1):

:grep 'my pattern.*' /path/to/dir 

По умолчанию он будет искать в текущем каталоге (:pwd).

Основное различие между :grep и :vimgrep является то, что :vimgrep (:vim для краткости) использует Vim-совместимые регулярные выражения, в то время как :grep использования независимо регулярные выражения ваших &grepprg использует.

Вы можете использовать специальную программу, установив &grepprg на что-то другое. Мне лично нравится ack, который использует Perl-совместимое регулярное выражение.

+0

Да, а как насчет списка вхождений? – Sem

+0

@Sem Я расширил свой ответ, чтобы быть настолько тщательным, насколько я могу, не углубляясь в него. – amphetamachine

+0

Спасибо, я стараюсь изо всех сил сейчас :) – Sem