8
votes

Enregistrer et compiler automatiquement

GNU 23.1.1

En cliquant sur le bouton F5, je peux compiler mon projet. Cependant, je souhaite étendre cela afin que tout travail non enregistré soit enregistré puis compilé. P>

Normalement, je viens de faire C-X-S pour enregistrer puis cliquez sur F5. Mais puis-je ajouter une ligne qui sauvera sans avoir à me demander que je veux enregistrer, tout cela sera compilé automatiquement? P>

; Compile program using <F5>
; Save all unsaved files here, then compile
(global-set-key [f5] 'compile)


2 commentaires

Je pense que vous vous demandez comment obtenir Emacs pour économiser automatiquement chaque fois que vous compilez? Vérifiez ma réponse ci-dessous pour comment faire cela.


Bien que un peu différent de ce que vous demandez, cette recette d'ajout d'un After-sauvegarde-crochet a fait le tour pour moi - RTTI.FELK.CVUT.CZ/~SOJKA/BLOG/COMPILE-ON-SAVE


3 Réponses :


8
votes

Vous pouvez utiliser (sauvegarder-certains-tampers 1) code> Pour enregistrer tous les tampons contenant des modifications.

Enroulez-le avec une fonction avec Compiler code> comme: p> xxx pré>

puis définissez F5 pour exécuter cette fonction au lieu de compiler uni. p>

Utilisez (Enregistrer-certains-tampons) code> ( Pas d'argument) Si vous préférez EMACS pour vous poser une question sur chaque tampon à enregistrer. En outre, vous voudrez peut-être rendre la commande compilation personnalisable, comme c'est-à-dire avec compile code> ... Je vous laisserai cela. P>


Travail h1>

Vous devez également ajouter (interactif) code>, voir l'exemple complet ci-dessous. p>

(defun save-all-and-compile ()
  (interactive)
  (save-some-buffers 1)
  (compile compile-command))
(global-set-key [f5] 'save-all-and-compile)


3 commentaires

Je vous recommanderais d'utiliser une clé (ou une combinaison) dans votre zone de frappe principale plutôt que de quelque chose comme F5 pour le faire.


Obtenir cette erreur Command-Execute: Type Type Argument: Commandp, enregistrement-tout-et-compile Lorsque vous tapez F5 après ajout de cette ligne (touche globale-Set [F5] 'Enregistrer-tout -et-compiler) pour lier la clé. Je suis sur Emacs 24.5.1.


Vous devez ajouter (interactif) comme première ligne du défunt .



16
votes

sur chaque EMACS que j'utilise (à partir du 19,34 à 24), compiler demande de sauver un tampon non sauvé avant de continuer. Je suis très surprise que ce n'est pas le cas pour vous.

Donc, la compilée M-X (F5 pour vous) demandera à sauver un tampon non lavé.

Vous pouvez personnaliser la compilation-Demander-SAVE-SAVE à NIL si vous souhaitez compiler de manière inconditionnelle, enregistrez votre tampon, ou laissez-la à sa valeur non nul par défaut si vous souhaitez être posé.


2 commentaires

Oui, tu as raison. Il vous demande de sauvegarder. Cependant, je préférerais ne pas être invité mais pour sauver quoi que ce soit sur chaque compilation. Normalement, j'ai toujours plus de 1 tampon ouvert et je voudrais juste sauver quoi que ce soit sans être invité à chaque compilation.


Ensuite, personnalisez la compilation-Demander-Save. C'est juste pour cela (sauvegarder tout tampon sans demander avant la compilation)?



22
votes

Mettez (SETQ Compilation-Posez-Save-Save-Save-Save-Save-Save-Save-Save-Save-Save-Save) Dans votre .emacs Pour enregistrer automatiquement (sans demander) avant de compiler ou de recompiler.


0 commentaires