Nehmen wir an, ich habe 10 Puffer geöffnet, und ich möchte alle Vorkommen blah
in allen 10 Puffern finden. Wie würde ich das machen?
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.
.
der reguläre Ausdruck ist, der allen Dateien entspricht.Zusätzlich zu dem, was andere erwähnt haben, sind hier zwei weitere Ressourcen dafür.
M-x multi-isearch-buffers
oderM-x multi-isearch-buffers-regexp
(Vanille-Emacs) - Inkrementelle Suche über mehrere Puffer.Wenn Sie Eiszapfen verwenden , können Sie mit
icicle-search
(oder einericicle-occur
beliebigen Anzahl anderericicle-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ürlichA
in Dired. Aber Sie haben nicht nach dem Durchsuchen von Dateien gefragt.)quelle
Dies kann mit dem Befehl helm erfolgen
helm-multi-occur
. Sie können helm von melpa installieren und dann den Befehl wie folgt aufrufen:Dadurch werden
helm-multi-occur
alle Puffer geöffnet und ausgewählt. AnstattM-a
alle Puffer zu markieren, können Sie die gewünschten Puffer auch einzeln auswählen. Navigieren Sie mit und in der Liste aufC-n
und abC-p
und markieren Sie die Puffer mitC-SPC
. Sobald alle Puffer markiert sind, drücken SieRET
, um die markierten Puffer zu akzeptieren und die Suche zu starten.Wenn Sie Ihrer Init-Datei Folgendes hinzufügen:
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.quelle
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.quelle
Mit
ibuffer
mode können Sie die Puffer markieren, die Sie durchsuchen möchten. Rufen Sieibuffer-do-isearch
(M-s a C-s
standardmäßig gebunden ) auf, um nach Text zu suchen, oderibuffer-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.quelle
Hier ist eine andere Art und Weise mit Helm:
M-x helm-mini M-a C-s blah
. Nach dem Aufrufhelm-mini
,M-a
alle Öffnung Puffer markieren dannC-s blah
auf markierten Puffer Multi tun auftreten.quelle
Auch eine Lösung im Steuermodus ist mit
helm-swoop
.Verwenden
Geben Sie dann für die Suche in allen offenen Puffern Folgendes ein
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
Markieren Sie dann alle Puffer, nach denen Sie suchen möchten, mit
M-SPC
oderC-SPC
, drücken SieRET
und suchen Sieblah
.quelle