Ein rekursiver Grep in einem Verzeichnis sollte die einfachste Sache sein, aber ich habe das Rezept noch nicht gefunden, damit es funktioniert. Ich jongliere zwischen den folgenden Befehlen und bin mir nicht sicher, in welcher Funktion sich die Funktionalität befindet:
helm-find-files
: Das Problem ist, dass es wirklich schlecht ist, ein Verzeichnis rekursiv zu finden.projectile-find-dir
: Das ist großartig, um das Verzeichnis zu finden! Obwohl Sie helm complete verwenden, werden Sie nicht im helm-Modus angezeigt, sodass derC-u C-s
Befehl hier nicht funktioniert.helm-find
: macht die Rekursion richtig, zielt aber auf Dateien ab, nicht auf Verzeichnissehelm-projectile-find-dir
: Scheint das zu sein, was ich will.
helm
projectile
grep
Djechlin
quelle
quelle
Antworten:
Sie haben zwei Möglichkeiten:
Verwendung
helm-projectile-grep/ack/ag
: Sie können ab dem Projektstamm nach allem suchen. Wenn Sie später die Suchergebnisse speichern möchten, drücken SieF3
oderTAB
, um zum Aktionsmenü zu wechseln und die dritte Aktion auszuwählen. So navigieren Sie imhgrep
Puffer:C-<down>
: Gehe zum nächsten Spiel und öffne das Spiel.C-<up>
: Gehe zum vorherigen Spiel und öffne das Spiel.M-<down>
: Gehe zum nächsten Spiel, ohne das Spiel zu öffnen.M-<up>
: Gehe zum nächsten Spiel, ohne das Spiel zu öffnen.C-o
: Aktuelle Übereinstimmung in einem anderen Fenster öffnen.RET
: Aktuelle Übereinstimmung im aktuellen Fenster öffnen.Verwenden Sie
helm-projectile-find-dir
(beachten Sie dashelm
Präfix; Sie müssenhelm-projectile
im Allgemeinen die richtigen Helm-Befehle aus dem Paket verwenden): Beschränken Sie sich auf ein gewünschtes Verzeichnis und drücken Sie,C-u C-s
um rekursiv in diesem Verzeichnis zu suchen. Wenn Sie nicht drückenC-u
, wird nur in diesem Verzeichnis gesucht, ohne tiefer zu gehen.Hoffentlich hilft das.
quelle
Für ein einfaches rekursives grep im aktuellen Verzeichnis einfach:
M-x grep
dann im Minibuffer :Run grep (like this): grep -nHr "pattern"
. (Beachten Sie das Flag -r).Sie könnten auch interessiert sein an
rgrep
:quelle
Zusätzlich zu den in den anderen Antworten erwähnten Werkzeugen besteht eine weitere coole Funktion darin
find-grep-dired
, einendired
Puffer zu erstellen, der alle Dateien enthält, die einem rekursiven Grep-Muster entsprechen.Es wird nur ausgeführt
find . \( -type f -exec grep -q -e my-regular-expression \{\} \; \) -ls
und zeigt die Ergebnisse in einemdired
Puffer an.quelle
Du könntest es versuchen
helm-do-grep
. Wenn Sie es mit einem Präfix arg aufrufen, erhalten Sie einen rekursiven Grep, wie im Helm-Wiki erläutert .Versuchen Sie es so:
C-u helm-command-prefix-key M-g s
quelle
helm-projectile-find-dir
ist wahrscheinlich die richtige Funktionalität. Du kannstprojectile-find-dir
C-u C-s
eine rekursive Suche durchführen können.quelle
Dieses Paket enthält genau das, wonach Sie suchen:
https://github.com/syohex/emacs-helm-ag
Der Befehl heißt helm-do-ag.
quelle