Рекурсивный grep в каталоге должен быть самым простым, но я пока не нашел рецепт, чтобы заставить его работать. Я жонглирую между следующими командами и не уверен, какая функциональность скрыта внутри:
helm-find-files
Проблема в том, что рекурсивно найти каталог действительно плохо.projectile-find-dir
: Это замечательно при поиске режиссера! Однако, несмотря на использование helm complete, вы не попадаете в режим helm, поэтомуC-u C-s
команда здесь не работает.helm-find
: получает правильную рекурсию, но нацеливает файлы, а не каталогиhelm-projectile-find-dir
Кажется, что я хочу.
helm
projectile
grep
djechlin
источник
источник
Ответы:
У вас есть два пути:
Использование
helm-projectile-grep/ack/ag
: Вы можете искать все, начиная с корня проекта. Позже, если вы хотите сохранить результаты поиска, нажмитеF3
или нажмите,TAB
чтобы перейти в меню действий и выбрать 3-е действие. Для навигации поhgrep
буферу:C-<down>
: перейти к следующему матчу и открыть его.C-<up>
: перейти к предыдущему матчу и открыть его.M-<down>
: перейти к следующему матчу, не открывая его.M-<up>
: перейти к следующему матчу, не открывая его.C-o
: открыть текущее совпадение в другом окне.RET
: открыть текущее совпадение в текущем окне.Используйте
helm-projectile-find-dir
(обратите внимание наhelm
префикс; вы должны использовать правильные команды Helm изhelm-projectile
пакета в общем): сузить до нужного каталога и нажатьC-u C-s
для рекурсивного поиска в этом каталоге. Если вы не нажимаетеC-u
, он просто ищет в этом каталоге, не углубляясь.Надеюсь, это поможет.
источник
Для простого рекурсивного Grep внутри текущего каталога, просто:
M-x grep
то, внутри минибуфер:Run grep (like this): grep -nHr "pattern"
. (обратите внимание на флаг -r).Вы также можете быть заинтересованы в
rgrep
:источник
В дополнение к инструментам, упомянутым в других ответах, есть еще одна классная функция,
find-grep-dired
которая создаетdired
буфер, содержащий все файлы, соответствующие рекурсивному шаблону grep.Он просто запускается
find . \( -type f -exec grep -q -e my-regular-expression \{\} \; \) -ls
и отображает результаты вdired
буфере.источник
Вы могли бы попробовать
helm-do-grep
. Вызов его с префиксом arg дает вам рекурсивный grep, как описано в Helm Wiki .Попробуйте это так:
C-u helm-command-prefix-key M-g s
источник
helm-projectile-find-dir
вероятно, правильная функциональность. Вы можетеprojectile-find-dir
C-u C-s
рекурсивный поиск по желанию.источник
Этот пакет содержит именно то, что вы ищете:
https://github.com/syohex/emacs-helm-ag
Название команды - helm-do-ag.
источник