Powiedzmy, że mam otwarte 10 buforów i chcę znaleźć wszystkie wystąpienia blah
wszystkich 10 buforów. Jak mam to zrobić?
Trzymając się wbudowanych poleceń Emacsa, możesz użyć multi-occur
lub multi-occur-in-matching-buffers
( M-x multi-occur- TAB RET
). multi-occur
daje ci dokładną kontrolę poprzez monitowanie o użycie każdego bufora, ale jest to uciążliwe. multi-occur-in-matching-buffers
pozwala wprowadzić wyrażenie regularne w celu dopasowania nazw plików (przeszukuje tylko bufory, które odwiedzają pliki); wprowadź .
jako wyrażenie regularne pliku, aby wyszukać we wszystkich buforach, które odwiedzają plik.
Istnieją również funkcje przyrostowego przeszukiwania listy buforów lub plików, ale są one żmudne, multi-occur
ponieważ wymagają wyświetlania buforów lub plików jeden po drugim.
Aby wyszukać wszystkie pliki w katalogu lub pliki pasujące do określonych wzorców, bez względu na to, czy są otwarte, czy nie, możesz użyć grep
. Istnieją warianty rgrep
i grep-find
rekurencyjne przeszukiwanie podkatalogów.
.
jest to wyrażenie regularne pasujące do wszystkich plików.Oprócz tego, co wspomnieli inni - oto dwa inne zasoby na ten temat.
M-x multi-isearch-buffers
lubM-x multi-isearch-buffers-regexp
(waniliowy Emacs) - Wyszukiwanie przyrostowe w wielu buforach.Jeśli używasz Sopli , możesz użyć
icicle-search
(lubicicle-occur
dowolnej liczby innychicicle-search
specjalizacji) do przeszukiwania wielu plików lub buforów.(Oprócz wyszukiwania i zastępowania dowolnych buforów , istnieją oczywiście polecenia, które robią to w wielu plikach . Inni wspominali
grep
na przykład. I oczywiście jestA
w Dired. Ale nie pytałeś o wyszukiwanie plików.)źródło
Można to zrobić za pomocą steru za pomocą polecenia
helm-multi-occur
. Możesz zainstalować ster z Melpy, a następnie wywołać polecenie w następujący sposób:Otworzy się,
helm-multi-occur
a następnie wybierze wszystkie bufory. Zamiast używaćM-a
do oznaczania wszystkich buforów, możesz opcjonalnie wybrać bufory będące przedmiotem zainteresowania pojedynczo. Nawiguj w górę i w dół listy za pomocąC-n
iC-p
i zaznacz bufory za pomocąC-SPC
. Po zaznaczeniu wszystkich buforów naciśnij,RET
aby zaakceptować zaznaczone bufory i rozpocząć wyszukiwanie.Jeśli dodasz następujące elementy do pliku init:
Następnie można powiązać polecenie,
my-helm-multi-occur-buffers
aby wykonać wielokrotne wystąpienie we wszystkich buforach utworzonych przez pliki.źródło
helm-swoop
paczki w MELPA. Zapewnia tę funkcjonalność i umożliwia szybką edycję wyników.swiper-all
z pakietu swiper zapewnia narzędzie do tego. Jest nawet przyrostowy, więc aktualizuje się podczas pisania.źródło
Możesz użyć
ibuffer
trybu, aby zaznaczyć bufory, które chcesz przeszukać. Zadzwońibuffer-do-isearch
(M-s a C-s
domyślnie ograniczone), aby wyszukać tekst lubibuffer-do-isearch-regexp
jeśli chcesz wyszukać wyrażenie regularne.Jeśli nie jesteś zaznajomiony
ibuffer
, odpal go i spójrz na menu Mark, aby zobaczyć wszystkie sposoby wyboru zestawu buforów, na których chcesz działać.źródło
Oto inny sposób ze sterem:
M-x helm-mini M-a C-s blah
. Po wywołaniuhelm-mini
,M-a
oznaczy wszystkie bufory otwarcia wtedyC-s blah
zrobi wielo wystąpić na oznakowanych buforów.źródło
Dostępne jest również rozwiązanie wykorzystujące tryb steru
helm-swoop
.Posługiwać się
następnie, aby wyszukać we wszystkich otwartych buforach, wpisz
następnie po prostu wpisz,
blah
aby wyszukać we wszystkich buforach. W innym oknie pokażą się wszystkie wystąpienia.Możesz też po prostu wpisać
następnie zaznacz wszystkie bufory, które chcesz przeszukać,
M-SPC
lubC-SPC
naciśnijRET
i wyszukajblah
.źródło