先日、Mxが発生したことを知りました。
( Emacs でコードの折りたたみ効果を実現する方法は? )
できればdired モードで マークされた複数のファイル (またはバッファー) 内のすべての一致する行を一覧表示できるかどうか疑問に思います。
先日、Mxが発生したことを知りました。
( Emacs でコードの折りたたみ効果を実現する方法は? )
できればdired モードで マークされた複数のファイル (またはバッファー) 内のすべての一致する行を一覧表示できるかどうか疑問に思います。
M-x multi-occur
M-x multi-occur-in-matching-buffers
また:
M-x multi-occur-in-this-mode
(defun get-buffers-matching-mode (mode)
"Returns a list of buffers where their major-mode is equal to MODE"
(let ((buffer-mode-matches '()))
(dolist (buf (buffer-list))
(with-current-buffer buf
(if (eq mode major-mode)
(add-to-list 'buffer-mode-matches buf))))
buffer-mode-matches))
(defun multi-occur-in-this-mode ()
"Show all lines matching REGEXP in buffers with this major mode."
(interactive)
(multi-occur
(get-buffers-matching-mode major-mode)
(car (occur-read-primary-args))))
これは、 MELPAからインストールできるパッケージnoccurを使用して実行できます。
次の 2 つの機能を提供します。
noccur-dired
dired マークの付いたファイルに対して実行multi-occur
されますnoccur-project
現在のプロジェクトのすべてのファイルに対して実行multi-occur
されます。これは再帰的です。ドキュメントからの典型的な使用法は次M-x noccur-project RET foo RET
のとおりです: オカレンス バッファーの内容は、occur-edit-mode (e にバインド) で編集できます。変更されたすべてのバッファの変更を保存して発生モードに戻るには、 を押しC-c C-c
ます。
これは、組み込みのibufferを使用して実行できます。キーでバッファをマークしてからm
、キーでマークされたバッファO
を起動ibuffer-do-occur
します。私は個人的に ibuffer を使用してアクティブにします。(defalias 'list-buffers 'ibuffer)
.emacs
regexp に一致するバッファに対してmulti-occur-in-matching-buffers
実行するビルトインを使用することもできます。典型的な使用法は、Emacs で既に開かれているバッファーの is regexp と、一致するものです。multi-occur
M-x multi-occur-in-matching-buffers RET ext$ RET regexp RET
ext$
regexp
あなたは試すことができます
(defun dired-do-multi-occur (regexp)
"Run `multi-occur' with REGEXP on all marked files."
(interactive (list (read-regexp "Regexp: ")))
(multi-occur (mapcar 'find-file-noselect (dired-get-marked-files)) regexp))
dired バッファで実行するM-x dired-do-multi-occur
か、好みのキーにバインドします。
警告:マークされたファイルはすべて emacs によって開かれます。
書き込み:
(a) Dired でマークされたファイルを正規表現検索するように求めているのか、(b) 内容が正規表現に一致するファイルを (Dired で) マークするように求めているのかわかりません。- または (c) 他の何か。
A
(またはM-S a C-M-s
インクリメンタル正規表現検索の場合)を使用して、前者(マークされたファイルの検索)を実行できます。そして、この回答では、ここでマークされたすべてのファイルとマークされたサブディレクトリで (再帰的に) 検索できます。
%q
( ) を使用して、後者 (内容が一致するファイルをマークする) を実行できますdired-mark-files-containing-regexp
。