Birçok açık arabellekte metin nasıl bulabilirim?


36

10 tamponun açık olduğunu ve 10 tamponun tüm oluşumlarını bulmak istediğimi blahvarsayalım. Bunu nasıl yaparım?

Yanıtlar:


31

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.


5
.Tüm dosyalarla eşleşecek normal ifade olduğunu belirtmek için +1 .
user2699,

12

Başkalarının söylediklerine ek olarak - burada bunun için iki kaynak daha var.

  1. M-x multi-isearch-buffersveya M-x multi-isearch-buffers-regexp(vanilya Emacs) - Birden çok arabellekte artımlı arama.

  2. 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.)


10

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 .


3
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.
Vamsi


6

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.


1

İş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.


0

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.