Réponses:
Si vous vous en tenez aux commandes Emacs intégrées, vous pouvez utiliser multi-occur
ou multi-occur-in-matching-buffers
( M-x multi-occur- TAB RET
). multi-occur
vous donne un contrôle précis en vous invitant à utiliser chaque mémoire tampon, mais c'est fastidieux. multi-occur-in-matching-buffers
vous permet d'entrer une expression rationnelle pour faire correspondre les noms de fichiers (elle recherche uniquement dans les mémoires tampons qui visitent des fichiers); entrez .
comme expression rationnelle de fichier pour effectuer une recherche dans tous les tampons qui visitent un fichier.
Il existe également des fonctions de recherche incrémentielle dans une liste de mémoires tampons ou de fichiers, mais elles sont fastidieuses, multi-occur
car elles nécessitent la liste des mémoires tampons ou des fichiers un par un.
Vous pouvez utiliser pour rechercher dans tous les fichiers d'un répertoire ou dans des fichiers correspondant à certains modèles, qu'ils soient ouverts ou non grep
. Il existe des variantes rgrep
et grep-find
de rechercher récursivement les sous-répertoires.
En plus de ce que d’autres ont mentionné, voici deux autres ressources pour cela.
M-x multi-isearch-buffers
ou M-x multi-isearch-buffers-regexp
(vanilla Emacs) - Recherche incrémentielle sur plusieurs tampons.
Si vous utilisez des glaçons, vous pouvez utiliser icicle-search
(ou icicle-occur
un nombre quelconque d'autres icicle-search
spécialisations) pour effectuer une recherche dans plusieurs fichiers ou tampons.
(En plus de la recherche et du remplacement dans des mémoires tampons arbitraires , il existe bien sûr des commandes qui le font dans plusieurs fichiers . D'autres l'ont mentionné grep
, par exemple. Et il y a bien sûr A
dans Dired. Mais vous n'avez pas posé de question sur la recherche de fichiers.)
Cela peut être fait avec helm via la commande helm-multi-occur
. Vous pouvez installer helm depuis melpa , puis appeler la commande comme suit:
M-x helm-multi-occur RET M-a RET
Cela ouvrira helm-multi-occur
et sélectionnera tous les tampons. Au lieu d'utiliser M-a
pour marquer tous les tampons, vous pouvez éventuellement les sélectionner un à un. Parcourez la liste avec C-n
et C-p
et marquez les tampons avec C-SPC
. Une fois que tous les tampons sont marqués, appuyez sur RET
pour accepter les tampons marqués et lancer la recherche.
Si vous ajoutez les éléments suivants à votre fichier d'initialisation:
(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)))))
Vous pouvez ensuite lier la commande my-helm-multi-occur-buffers
pour effectuer plusieurs événements dans tous les tampons sauvegardés par des fichiers.
helm-swoop
paquet dans MELPA. Il fournit cette fonctionnalité et permet également une édition rapide des résultats.
swiper-all
du paquet swiper fournit un outil pour cela. C'est même incrémental, donc il se met à jour au fur et à mesure que vous tapez.
Vous pouvez utiliser le ibuffer
mode pour marquer les tampons que vous souhaitez rechercher. Appelez ibuffer-do-isearch
(lié à M-s a C-s
par défaut) pour rechercher du texte ou ibuffer-do-isearch-regexp
si vous devez rechercher une expression régulière.
Si vous n'êtes pas familier avec ibuffer
, lancez- le et jetez un coup d'œil au menu Marquer pour voir toutes les façons dont vous pouvez choisir un ensemble de mémoires tampons sur lesquelles vous souhaitez travailler.
Voici une autre façon avec la barre: M-x helm-mini M-a C-s blah
. Après avoir appelé helm-mini
, M-a
marquera tous les tampons d'ouverture puis C-s blah
fera plusieurs sur les tampons marqués.
En outre, une solution utilisant le mode helm existe helm-swoop
.
Utilisation
M-x helm-swoop RET
puis, pour rechercher dans tous les tampons ouverts, tapez
M-i
Ensuite, tapez simplement blah
pour le rechercher dans tous les tampons. Dans une autre fenêtre, toutes les occurrences seront affichées.
Alternativement, vous pouvez simplement taper
M-x helm-multi-swoop
puis, marquer tous les tampons que vous souhaitez rechercher avec M-SPC
ou C-SPC
, appuyez sur RET
et recherche blah
.
.
c'est l'expression régulière qui correspond à tous les fichiers.