2010-12-06 38 views
1

The GNU Emacs Manual dit:Exécution de plusieurs compilations dans Emacs (sous Windows)?

Si vous voulez exécuter deux compilations à la fois, vous devriez commencer à la première, puis renommez le tampon « *compilation* » (peut-être en utilisant rename-uniquely, voir Misc Buffer), et commencer l'autre compilation. Cela va créer un nouveau tampon '*compilation*'.

J'ai essayé ceci, mais cela n'a pas fonctionné comme annoncé. Je courais ce version:

GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600) of 2010-05-08 on G41R2F1 

C'est, Emacs for Windows, ce qui pourrait être le problème. Peut-être que plusieurs compilations fonctionnent bien sur d'autres plateformes?

Comment exécuter plusieurs compilations dans Emacs?

Répondre

1

Le manuel d'Emacs est obsolète, j'en ai peur. Si vous C-hf vous RET compilation verrez ceci:

Pour exécuter plus d'une compilation à la fois, commencer une renommez le tampon *compilation* à un autre nom avec M-x rename-buffer. Puis basculez les tampons et démarrez la nouvelle compilation. Il va créer un nouveau tampon *compilation*.

Notez le texte surligné.

I filed a bug report. (Mais c'est vraiment une opération assez commune qu'il devrait y avoir une commande pour cela.)

Modifié pour ajouter: maintenant fixé! (Attendez-vous le correctif apparaisse dans Emacs 24.)

+0

Cela a fonctionné - Merci! –

+0

Une nouvelle commande a-t-elle déjà été ajoutée? – mgalgs

+0

Je ne peux pas en voir un. Il devrait être assez facile d'écrire le vôtre, cependant. –

2

Voici une petite fonction pour renommer votre tampon de compilation à quelque chose d'unique:

(defun my-make-room-for-new-compilation-buffer() 
    "Renames existing *compilation* buffer to something unique so 
     that a new compilation job can be run." 
    (interactive) 
    (let ((cbuf (get-buffer "*compilation*")) 
     (more-cbufs t) 
     (n 1) 
     (new-cbuf-name "")) 
    (when cbuf 
     (while more-cbufs 
     (setq new-cbuf-name (format "*compilation%d*" n)) 
     (setq n (1+ n)) 
     (setq more-cbufs (get-buffer new-cbuf-name))) 
     (with-current-buffer cbuf 
     (rename-buffer new-cbuf-name))))) 

Je suis sûr qu'il ya beaucoup de nettoyage qui pourrait être fait, mais c'est un début ...

+0

Merci pour ce code - une bonne alternative jusqu'à la mise à jour d'Emacs 24! –

+0

@GregMattes en fait, je ne pense pas qu'il y ait une nouvelle commande dans Emacs 24 ... Donc je pense qu'une solution maison est-elle :) – mgalgs

0

Il suffit d'aller à compilation et d'appeler rename-uniquement.