回答:
組み込みのEmacsコマンドにこだわり、multi-occur
or multi-occur-in-matching-buffers
(M-x multi-occur- TAB RET
)を使用できます。multi-occur
使用するバッファごとにプロンプトを表示することで、きめ細かく制御できますが、面倒です。multi-occur-in-matching-buffers
ファイル名と一致する正規表現を入力できます(ファイルを訪問しているバッファーでのみ検索します)。.
ファイルを訪問しているすべてのバッファで検索するには、ファイル正規表現として入力します。
バッファまたはファイルのリスト全体をインクリメンタル検索する機能もありますがmulti-occur
、バッファまたはファイルを1つずつリストする必要があるため退屈です。
ディレクトリ内のすべてのファイル、または特定のパターンに一致するファイルを、開いているかどうかに関係なく検索するには、を使用できますgrep
。亜種がrgrep
ありgrep-find
、サブディレクトリを再帰的に検索します。
他の人が言及したことに加えて、ここに他の2つのリソースがあります。
M-x multi-isearch-buffers
またはM-x multi-isearch-buffers-regexp
(バニラEmacs)-複数のバッファーにわたるインクリメンタル検索。
あなたが使用している場合はつららを、あなたは使用することができますicicle-search
(またはicicle-occur
、または他の任意の数のicicle-search
複数のファイルまたはバッファ間で検索する専門)。
(任意のバッファでの検索と置換に加えて、複数のファイルでそれを行うコマンドがあります。grep
たとえば、他の人が言及しています。もちろんA
、Diredにもあります。しかし、ファイルの検索については尋ねませんでした。)
これは、コマンドを介してヘルムで実行できますhelm-multi-occur
。ヘルパをmelpaからインストールして、次のようにコマンドを呼び出すことができます。
M-x helm-multi-occur RET M-a RET
これによりhelm-multi-occur
、すべてのバッファが開き、選択されます。M-a
すべてのバッファをマークするために使用する代わりに、必要に応じて一度に1つのバッファを選択できます。リストを上下に移動C-n
し、C-p
マーク・バッファを持ちますC-SPC
。すべてのバッファがマークされたら、を押しRET
てマークされたバッファを受け入れ、検索を開始します。
以下をinitファイルに追加する場合:
(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)))))
その後、コマンドmy-helm-multi-occur-buffers
をバインドして、ファイルによってバッキングされているすべてのバッファーで複数回発生することができます。
helm-swoop
MELPAパッケージ。この機能を提供し、結果の迅速な編集も可能にします。
.
は、すべてのファイルに一致する正規表現です。