#vim #grep
#vim #grep
Вопрос:
Итак, возимся с плагином EasyGrep.vim, пытаясь привести его в состояние, которое меня устраивает. Я использую его для рекурсивного поиска в проекте Rails. У меня почти получилось так, как я хочу, это пример команды grep, которую выполняет мой модифицированный EasyGrep:
:grep -R -i --include=*.rb --include=*.rbw --include=*.gem --include=*.gemspec --include=[rR]akefile --include=*.erb --include=*.rhtml SEARCH_WORD .
Который находит слово под курсором и открывает результаты поиска в quicklist.
Единственная проблема в том, чтоgrep, похоже, автоматически открывает файл, содержащий первое совпадение, в текущем буфере, чего я не хочу, чтобы это делалось, потому что тогда я теряю файл, на который я только что смотрел.
Кто-нибудь знает, как я могу предотвратить такое поведение? Или, по крайней мере, хитрый обходной путь, который повторно открывает файл, из которого я искал?
: vimgrep — это не вариант — он слишком медленный.
Ответ №1:
От :help :grep
:
Just like ":make", but use 'grepprg' instead of 'makeprg' and 'grepformat' instead of 'errorformat'.
От :help :make
:
If [!] is not given the first error is jumped to.
Итак: :grep!
Комментарии:
1. Что касается «взломанного обходного пути» (здесь это необязательно, но все еще может быть вам полезно),
:help CTRL-^
2. легенда! Я думал, что id уже пробовал это (; grep!), Но, видимо, тогда было что-то еще, потому что теперь это работает!
3. Я бы посоветовал не вставлять текст справки vim. Это первое рекламное объявление является прекрасным примером того, насколько бесполезным оно может быть. Определение grep в терминах make не поможет кому-либо, если они не знают, как работает make. :grep! было бы достаточно простым и полным ответом. Хотя я должен согласиться с OP, что это немного шатко. Иногда просто: grep не открывает первую ошибку. О, и это ОЧЕНЬ сбивает с толку, что они называются «ошибки» вместо «совпадений».
4. Я согласен с @Milimetric; эта первая строка скорее сбивает с толку, чем помогает.
Ответ №2:
Добавьте это в свой .vimrc:
let g:EasyGrepOpenWindowOnMatch=0
EasyGrep имеет множество опций, которые могут управлять его поведением. Введите :GrepOptions
, чтобы получить список всех этих файлов.