Antworten:
Wenn Sie sich an die integrierten Emacs-Befehle halten, können Sie multi-occur
oder multi-occur-in-matching-buffers
( M-x multi-occur- TAB RET
) verwenden. multi-occur
Ermöglicht Ihnen eine genaue Kontrolle, indem Sie zur Verwendung jedes Puffers auffordern, dies ist jedoch mühsam. multi-occur-in-matching-buffers
Ermöglicht die Eingabe eines regulären Ausdrucks, der den Dateinamen entspricht (es wird nur in Puffern gesucht, die Dateien besuchen). Geben Sie .
als Datei regexp in alle Puffer zu suchen , die eine Datei besuchen.
Es gibt auch Funktionen für die inkrementelle Suche in einer Liste von Puffern oder Dateien, die jedoch langwierig sind, multi-occur
da die Puffer oder Dateien nacheinander aufgelistet werden müssen.
Mit dieser Option können Sie alle Dateien in einem Verzeichnis durchsuchen oder Dateien, die bestimmten Mustern entsprechen, unabhängig davon, ob sie geöffnet sind oder nicht grep
. Es gibt Varianten rgrep
und grep-find
Unterverzeichnisse rekursiv zu durchsuchen.
Zusätzlich zu dem, was andere erwähnt haben, sind hier zwei weitere Ressourcen dafür.
M-x multi-isearch-buffers
oder M-x multi-isearch-buffers-regexp
(Vanille-Emacs) - Inkrementelle Suche über mehrere Puffer.
Wenn Sie Eiszapfen verwenden , können Sie mit icicle-search
(oder einer icicle-occur
beliebigen Anzahl anderer icicle-search
Spezialisierungen) mehrere Dateien oder Puffer durchsuchen.
(Zusätzlich zum Suchen und Ersetzen in beliebigen Puffern gibt es natürlich Befehle, die dies in mehreren Dateien tun . Andere haben dies grep
zum Beispiel erwähnt. Und natürlich A
in Dired. Aber Sie haben nicht nach dem Durchsuchen von Dateien gefragt.)
Dies kann mit dem Befehl helm erfolgenhelm-multi-occur
. Sie können helm von melpa installieren und dann den Befehl wie folgt aufrufen:
M-x helm-multi-occur RET M-a RET
Dadurch werden helm-multi-occur
alle Puffer geöffnet und ausgewählt. Anstatt M-a
alle Puffer zu markieren, können Sie die gewünschten Puffer auch einzeln auswählen. Navigieren Sie mit und in der Liste auf C-n
und ab C-p
und markieren Sie die Puffer mit C-SPC
. Sobald alle Puffer markiert sind, drücken Sie RET
, um die markierten Puffer zu akzeptieren und die Suche zu starten.
Wenn Sie Ihrer Init-Datei Folgendes hinzufügen:
(require 'helm-regexp)
(eval-after-load "helm-regexp"
'(setq helm-source-moccur
(helm-make-source "Moccur" 'helm-source-multi-occur :follow 1)))
;; (source: http://stackoverflow.com/q/14726601)
(defun my-helm-multi-occur-buffers ()
"multi-occur in all buffers backed by files."
(interactive)
(helm-multi-occur
(delq nil
(mapcar (lambda (b)
(when (buffer-file-name b) (buffer-name b)))
(buffer-list)))))
Sie können dann den Befehl binden my-helm-multi-occur-buffers
, um in allen Puffern, die von Dateien gesichert werden, ein mehrfaches Auftreten durchzuführen.
helm-swoop
Paket in MELPA ansehen. Es bietet diese Funktionalität und ermöglicht eine schnelle Bearbeitung der Ergebnisse.
swiper-all
aus dem swiper-paket liefert ein tool dafür. Es ist sogar inkrementell, sodass es während der Eingabe aktualisiert wird.
Mit ibuffer
mode können Sie die Puffer markieren, die Sie durchsuchen möchten. Rufen Sie ibuffer-do-isearch
( M-s a C-s
standardmäßig gebunden ) auf, um nach Text zu suchen, oder ibuffer-do-isearch-regexp
wenn Sie nach einem regulären Ausdruck suchen müssen.
Wenn Sie mit dieser Funktion nicht vertraut ibuffer
sind, rufen Sie sie auf und sehen Sie sich das Markierungsmenü an, um zu erfahren, wie Sie eine Reihe von Puffern auswählen können, mit denen Sie arbeiten möchten.
Hier ist eine andere Art und Weise mit Helm: M-x helm-mini M-a C-s blah
. Nach dem Aufruf helm-mini
, M-a
alle Öffnung Puffer markieren dann C-s blah
auf markierten Puffer Multi tun auftreten.
Auch eine Lösung im Steuermodus ist mit helm-swoop
.
Verwenden
M-x helm-swoop RET
Geben Sie dann für die Suche in allen offenen Puffern Folgendes ein
M-i
blah
Geben Sie dann einfach ein , um in allen Puffern zu suchen. In einem anderen Fenster werden alle Vorkommen angezeigt.
Alternativ können Sie einfach eingeben
M-x helm-multi-swoop
Markieren Sie dann alle Puffer, nach denen Sie suchen möchten, mit M-SPC
oder C-SPC
, drücken Sie RET
und suchen Sie blah
.
.
der reguläre Ausdruck ist, der allen Dateien entspricht.