Rekursywny grep w katalogu powinien być najprostszą rzeczą, ale nie znalazłem jeszcze przepisu, aby go uruchomić. Żongluję między następującymi poleceniami i nie jestem pewien, która funkcja ma w sobie ukrytą funkcję:
helm-find-files
: Problem polega na tym, że naprawdę źle jest znaleźć katalog rekurencyjnie.projectile-find-dir
: Świetnie jest znaleźć reż! Jednak pomimo użycia pełnego hełmu nie kończysz w trybie steru, więcC-u C-s
polecenie tutaj nie działa.helm-find
: zapewnia prawidłową rekurencję, ale dotyczy plików, a nie katalogówhelm-projectile-find-dir
: Wydaje się być tym, czego chcę.
helm
projectile
grep
djechlin
źródło
źródło
Odpowiedzi:
Masz dwa sposoby:
Zastosowanie
helm-projectile-grep/ack/ag
: Możesz wyszukiwać wszystko, zaczynając od katalogu głównego projektu. Później, jeśli chcesz zapisać wyniki wyszukiwania, naciśnijF3
lub naciśnij,TAB
aby przejść do menu akcji i wybierz 3. akcję. Aby nawigować pohgrep
buforze:C-<down>
: przejdź do następnego meczu i otwórz mecz.C-<up>
: przejdź do poprzedniego meczu i otwórz mecz.M-<down>
: przejdź do następnego meczu bez otwierania meczu.M-<up>
: przejdź do następnego meczu bez otwierania meczu.C-o
: otwórz bieżące dopasowanie w innym oknie.RET
: otwórz bieżące dopasowanie w bieżącym oknie.Użyj
helm-projectile-find-dir
(zwróć uwagę nahelm
przedrostek; musisz użyćhelm-projectile
ogólnie odpowiednich poleceń Helm z pakietu): zawęź do żądanego katalogu i naciśnij,C-u C-s
aby rekurencyjnie wyszukiwać w tym katalogu. Jeśli nie naciśnieszC-u
, po prostu przeszukuje ten katalog bez wchodzenia głębiej.Mam nadzieję, że to pomaga.
źródło
Dla prostego rekurencyjne grep wewnątrz bieżącego katalogu, po prostu:
M-x grep
wtedy, wewnątrz minibufora:Run grep (like this): grep -nHr "pattern"
. (zauważ flagę -r).Mogą Cię również zainteresować
rgrep
:źródło
Oprócz narzędzi wymienionych w innych odpowiedziach, kolejną fajną funkcją jest
find-grep-dired
tworzeniedired
bufora zawierającego wszystkie pliki pasujące do rekurencyjnego wzoru grep.Po prostu działa
find . \( -type f -exec grep -q -e my-regular-expression \{\} \; \) -ls
i wyświetla wyniki wdired
buforze.źródło
Możesz spróbować
helm-do-grep
. Wywołanie go z prefiksem arg daje rekurencyjne grep, jak wyjaśniono w Wiki Helm .Spróbuj tak:
C-u helm-command-prefix-key M-g s
źródło
helm-projectile-find-dir
to prawdopodobnie odpowiednia funkcjonalność. Możeszprojectile-find-dir
C-u C-s
wyszukiwanie rekurencyjne według potrzeb.źródło
Ten pakiet ma dokładnie to, czego szukasz:
https://github.com/syohex/emacs-helm-ag
Nazwa polecenia to helm-do-ag.
źródło