Yanıtlar:
Yerleşik Emacs komutlarına yapışarak, multi-occurya da multi-occur-in-matching-buffers( M-x multi-occur- TAB RET) kullanabilirsiniz . multi-occurHer bir tamponun kullanmasını isteyip istemediğinizi kontrol ederek hassas bir kontrol sağlar, ancak sıkıcıdır. multi-occur-in-matching-buffersdosya adlarını eşleştirmek için bir regexp girmenize olanak sağlar (yalnızca dosyaları ziyaret eden arabelleklerde arama yapar); .Bir dosyayı ziyaret eden tüm tamponlarda arama yapmak için regexp dosyasını girin .
Ayrıca arabellek veya dosyalar listesinde artan arama için işlevler de vardır, ancak multi-occurarabellekleri veya dosyaları birer birer listelemeyi gerektirdikleri gibi sıkıcıdırlar .
Bir dizindeki tüm dosyaları veya belirli desenlerle eşleşen dosyaları açık, açık olsun olmasın, aramak için kullanabilirsiniz grep. Varyantları vardır rgrepve grep-findalt dizinleri tekrarlı olarak aramak için.
Başkalarının söylediklerine ek olarak - burada bunun için iki kaynak daha var.
M-x multi-isearch-buffersveya M-x multi-isearch-buffers-regexp(vanilya Emacs) - Birden çok arabellekte artımlı arama.
Eğer kullanırsanız Icicles o zaman kullanabilirsiniz icicle-search(veya icicle-occur, ya da diğer herhangi bir sayı icicle-searchuzmanlık) birden fazla dosya veya tamponlar arasında arama yapmak.
(İsteğe bağlı arabellekleri aramanın ve değiştirmenin yanı sıra , bunu birden fazla dosyada da yapan elbette komutlar vardır . grepÖrneğin, diğerleri de bahsetti . Örneğin A, Dired'da elbette var . Ama dosya arama hakkında sormadınız.)
Bu komut ile dümen ile yapılabilir helm-multi-occur. Dümeni melpa'dan yükleyebilir ve sonra komutu aşağıdaki gibi çağırabilirsiniz:
M-x helm-multi-occur RET M-a RET
Bu açılacak helm-multi-occurve ardından tüm tamponları seçecektir. M-aTüm arabellekleri işaretlemek yerine, isteğe bağlı olarak ilgilenilen arabellekleri birer birer seçebilirsiniz. Yukarı gidin ve listede aşağı C-nve C-pbirlikte ve işareti tamponları C-SPC. Tüm tamponlar işaretlendikten sonra RET, işaretli tamponları kabul etmek ve aramaya başlamak için tuşuna basın .
Aşağıdakileri init dosyanıza eklerseniz:
(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)))))
Daha sonra my-helm-multi-occur-buffers, dosyalar tarafından desteklenen tüm tamponlarda çoklu oluşum yapma komutunu bağlayabilirsiniz .
helm-swoopMELPA'daki pakete de bakmak isteyebilirsiniz. Bu işlevselliği sağlar ve sonuçların hızlı bir şekilde düzenlenmesini sağlar.
swiper-alldan swiper paketinin bu iş için bir araç sağlar. Hatta artımlıdır, bu yüzden siz yazdıkça güncellenir.
ibufferAramak istediğiniz arabellekleri işaretlemek için modu kullanabilirsiniz . Çağrı ibuffer-do-isearch(bağlı M-s a C-svarsayılan) metni aramak, ya da ibuffer-do-isearch-regexpnormal ifadede aramak için ihtiyaç olduğuna.
Eğer aşina ibufferdeğilseniz, ateşleyin ve üzerinde çalışacağınız bir dizi tampon seçebileceğiniz tüm yolları görmek için Mark menüsüne bakın.
İşte dümen ile başka bir yoludur: M-x helm-mini M-a C-s blah. Çalıştırdıktan sonra helm-mini, M-atüm açılış arabelleklerini işaretler , ardından C-s blahişaretli arabelleklerde çoklu oluşum yapar.
Ayrıca, dümen modunu kullanan bir çözüm de vardır helm-swoop.
kullanım
M-x helm-swoop RET
sonra, tüm açık arabellekleri aramak için,
M-i
daha sonra blahtüm tamponlarda aramak için yazın . Farklı bir pencerede tüm oluşumları gösterecektir.
Alternatif olarak, sadece yazabilirsiniz
M-x helm-multi-swoop
daha sonra, aramak istediğiniz tüm arabellekleri M-SPCveya ile işaretleyin C-SPC, 'ye basın RETve arayın blah.
.Tüm dosyalarla eşleşecek normal ifade olduğunu belirtmek için +1 .