2010-03-10 3 views
16

Dans Emacs, l'utilisation du mode ido me permet d'ouvrir un fichier à partir du mini-tampon avec C-x C-f. Cette méthode ouvre un seul fichier à la fois. Comment ouvrir tous les fichiers dans un répertoire ou spécifier plus d'un fichier à ouvrir?Ouverture de plusieurs fichiers à la fois dans Emacs

+0

Je ne sais pas si cette solution s'applique (d'où le commentaire) mais en combinaison avec emacsclient (voir http://stackoverflow.com/questions/4458245/how-to-set-emacs-to-open-new-files- in-current-instance-on-ubuntu-mint) vous pouvez également utiliser 'find' dans la ligne de commande. Pour ouvrir tous les fichiers Clojure dans emacs, je fais ceci: '' emacsclient 'find. -type f -name "* .clj" '' ' –

Répondre

14

Vous pouvez simplement indiquer * comme nom de fichier et appuyer sur Entrez; une confirmation vous sera demandée et si vous appuyez sur , entrez une seconde fois, tous les fichiers du répertoire seront ouverts. Notez que "l'ouverture de tous les fichiers dans un répertoire" implique l'ouverture de tampons dired pour tous ses sous-répertoires.

Lorsque pas en utilisant le mode Ido-- à Emacs de base find-file rapide - vous pouvez utiliser le même * pour ouvrir tous les fichiers dans un répertoire. Lorsque vous utilisez le mode ido pour rechercher des fichiers, vous pouvez toujours appuyer sur C-f pour revenir à l'invite habituelle du fichier de recherche Emacs. (Vous pouvez utiliser ido pour accélérer l'accès à un répertoire qui vous intéresse et le déposer dans le fichier find de base.) C'est une façon de créer un nouveau fichier avec ido (l'autre étant la liaison Cj) ; aussi, il vous donne une autre façon d'utiliser l'astuce * ci-dessus.

+0

@ ~ unutbu: Quelle version d'Emacs utilisez-vous? Je suis sur 23.1.50.1 (en utilisant le ido.el fourni avec Emacs) et je viens de vérifier que cela fonctionne même sans ma config, avec ou sans ido. –

+1

@ ~ unutbu: En fait, il existe une variable appelée 'find-file-wildcards' qui doit être définie sur une valeur non -nil' pour que l'extension générique fonctionne. Voir '/ usr/share/emacs//lisp/files.el.gz' (s'il vous plaît ajuster ce chemin pour votre plate-forme, ou dire' Ch f find-file ', puis appuyez sur' ' encore avec point sur 'fichiers .el'), ligne 1314 (dans ma version), dans la définition de la fonction 'find-file'. Faites-moi savoir si cela aide et je vais modifier la réponse pour en tenir compte. –

+0

@Michal: Merci pour votre aide! J'ai '' (require 'ffap) 'dans mes .emacs. Quand j'enlève '(require 'ffap)', j'obtiens le comportement que tu décris. – unutbu

2

La superposition de noms de fichiers est loin d'être aussi utile que l'appariement de motifs plus général.

Dans Icicles file-name completion, vous pouvez ouvrir n'importe quel nombre de fichiers correspondant à n'importe quel nombre de motifs, à partir du même mini-tampon. La correspondance de motif peut être sous-chaîne, regexp, floue ou préfixe, et vous pouvez combiner des motifs en utilisant l'intersection et le complément.

Tout comme dans Ido, dans Icicles, votre entrée de mini-tampon filtre dynamiquement les candidats au nom de fichier. Vous pouvez choisir des candidats individuels ou choisir tous ceux qui correspondent actuellement (en utilisant C-!).

(modèle Vous pouvez bien sûr fichier nom groking d'utilisation également. Comme avec Emacs entrée fichier nom généralement, frapper RET sur un caractère générique (grok) envoie à find-file, qui ouvre tous les fichiers correspondant.)

Questions connexes