10
votes

Emacs Recherchez et ouvrez plusieurs fichiers et recherchez sur tous les tampons

Je suis actuellement au début d'un processus de commutation en avant EMACS. Cependant, j'ai deux problèmes de base.

  1. Comment rechercher plusieurs fichiers récursives à partir d'un chemin spécifique? Je suppose que je dois utiliser trouver / grep / dirigeé mais je ne suis pas sûr. Par exemple, j'aimerais trouver tous les fichiers *. Scala sur le chemin C: / src / xxx .Lorsque ces fichiers sont trouvés, je voudrais aussi les ouvrir tous dans le tampon à la fois. La seule façon dont je connais actuellement est c-x c-f .

  2. Lorsque tous ces fichiers sont dans le tampon, comment puis-je rechercher dans tous les tampons et obtenir une liste de la liste du résultat et / ou peut-être capable de naviguer du résultat? Dire que je voudrais trouver tous les endroits avec le texte cas int => se produire.


5 Réponses :




0
votes

Je pense que vous contraindrez artificiellement la réponse. Vous n'avez pas besoin de charger tous les fichiers dans EMACS afin de trouver ces événements. Et, une fois que vous avez trouvé les occurrences de la REGEXP, vous pouvez facilement passer à la ligne dans le fichier avec une touche de frappe.

Ma façon préférée de le faire est d'utiliser MX IGEP-Trouver KBD> Parce que j'aime bien l'interface iGep code> mieux que celle de grep-trouver code>. p>

Vous pouvez trouver la bibliothèque iGEP sur Emacswiki: iGep.el p>

et l'utilisation serait p>

M-x igrep-find case Int => RET


0 commentaires

1
votes

Vous essayez de trouver toutes les occurrences de "cas int =>" in * .scala fichiers en C: / src

Le moyen le plus simple (en supposant une configuration d'emacs par défaut) consiste à utiliser m-x rgrep . Il vous demandera une chaîne de recherche, un type de fichier et un répertoire (dans cet ordre, et les invites sont étiquetées, il n'y a donc pas de confusion). Il suffit de taper cas int => , *. Scala et C: / src / xxx . .

Ce que vous devriez voir est un nouveau tampon avec une liste d'occurrences de "cas int =>" dans tous les fichiers .scala dans ce répertoire. Si vous cliquez sur une occurrence, EMACS ouvre ce fichier et naviguez jusqu'à la ligne qui le contient.

En tant que note, si vous essayez de faire de la recherche et de remplacer plusieurs fichiers, vous pouvez le faire en utilisant les options dirigeées . Vous pouvez trouver des informations sur cette option Ici .


0 commentaires

1
votes

* pour question A ***

dans glaçons , c-x c-f est par défaut A multi-commandes . Cela signifie que lorsque vous remplissez vers un ensemble de noms de fichiers:

  • Vous pouvez agir sur (par exemple, visite) plusieurs candidats, sélectivement (par exemple, C-RET , C-MOUSE-2 ). < / li>

  • Vous pouvez agir sur tous les fichiers dont les noms correspondent à votre entrée actuelle - E.g., visitez-les tous.

    Il en va de même pour les autres CLIcules Les commandes de fichiers, y compris celles qui vous permettent de faire correspondre un nom de fichier absolu, ce qui signifie que vos modèles de minibuffer peuvent correspondre non seulement à la partie non répertoire du nom du fichier, mais pièces de répertoire aussi.

    Par exemple, C-X C-F avec un préfixe arg correspond aux noms de fichiers absolus. Et m-x icicle-locate-fichier fait la même chose pour tous les fichiers sous un répertoire donné.

    (Vous pouvez toujours utiliser une commande multi-commande comme commande ordinaire: cx cf agit normalement si vous utilisez res ou souris-2 . Si vous n'utilisez pas les liaisons de clé supplémentaires pour agir sur plusieurs fichiers, vous ne connaissez jamais la différence.)

    voir http://www.emacswiki.org/emacs/icles_-_file-name_input


    * pour la question b ***

    Ce que vous voulez est glaçons Recherche.

    • Commande icicle-recherche-fichier recherche tous les fichiers d'un jeu spécifié.
    • Commande icicule-Search-tampon recherche tous les tampons d'un jeu spécifié.
    • Commande icicule-recherche fait les deux: fichiers avec un préfixe négatif arg, tampons avec un préfixe non négatif arg.

      Ces commandes vous permettent de spécifier une REGEXP pour définir les contextes de recherche: les parties des fichiers ou des tampons que vous souhaitez rechercher. Par exemple, . * signifie chaque ligne.

      Après avoir défini les contextes de recherche, vous tapez du texte dans le minibuffer et rétrécit les contextes de recherche candidats à ceux qui correspondent à votre texte. Vous pouvez appuyer sur M-SPC pour combiner plusieurs modèles de ce type.

      Ensuite, vous pouvez naviguer vers les hits de recherche sélectionnés: C-RET ou C-souris-2 à visiter ou cycle / visite en utilisant C-Down . Vous pouvez même trier les candidats correspondants de différentes manières, pour les comparer facilement ou pour changer l'ordre de cycle.

      voir http://www.emacswiki.org/emacs/icles_-_search_commands%2C_Overview


0 commentaires