Appelle-moi boiteux, mais je suis fatigué de mon subconscient Toute astuce sur la façon de faire cela, ou de meilleures solutions? p>
(sur une note connexe, j'ai trouvé un Solution de contournement automatique qui peut enregistrer le tampon actuel comme dès que vous êtes inactif pour un temps donné.) p> C-X C-S Code> Twitch nerveux. Je chante des tampons assez souvent et je pense que je voudrais enregistrer un certain tampon dès que je passe à un autre. Je n'ai pas encore eu le temps d'apprendre les bases EMACS-LISP. P>
3 Réponses :
Je suis un peu nouveau à Emacs Lisp moi-même, mais cela fonctionne dans mes tests:
(ad-disable-advice 'switch-to-buffer 'before 'save-buffer-now) (ad-activate 'switch-to-buffer)
Quelques idées.
Premièrement, si vous vous trouvez appeler une commande comme épargne avec une fréquence suffisamment haute, vous pouvez envisager une liaison de clé plus courte pour la commande. Par exemple, je me suis également retrouvé avoir le même "Twitch", alors maintenant que j'utilise La fonction que je lie à maintenant, sur le problème principal. Vous pouvez essayer quelque chose comme ceci (remarque que Bien sûr, vous pouvez également lier le tampon de commutateur fonctionnalité à une autre clé, comme une clé de fonction, de sorte qu'il s'agit d'une opération de presse unique. P> Je pensais que @Seth a eu une bonne idée de l'utilisation de conseils, mais j'ai remarqué que le manuel ELISP suggère que Les conseils ne sont pas utilisés pour des liaisons clés . Je ne sais pas trop pourquoi c'est le cas, mais c'est ce que le manuel suggère FYI. P> P> f2 code> au lieu de
CX CS code> pour sauvegarder les modifications. P>
F2 code> enregistre chaque tampon non enregistré inconditionnellement. Vous pourriez le trouver utile: p>
forcer-sauve-tout code> est appelé): p>
Intéressant. Je n'ai pas vu cette partie sur les clés de bord lorsque je lisais le manuel. Merci.
Le seul problème avec cette solution est lorsque vous par exemple. Commencez à utiliser IDO-Switch-tampon code>, vous devez également suivre les modifications de votre fonction.
C'est vrai, je suppose que vous pouvez reculer le symbole de commutation à la mémoire tampon à cette nouvelle fonction (sauvegarder l'original dans un autre symbole, par exemple Orig-Save-to-tamper)
Pour développer sur Seth 'S Réponse , je ferais ceci:
(defadvice switch-to-buffer (before save-buffer-now activate) (when buffer-file-name (save-buffer))) (defadvice other-window (before other-window-now activate) (when buffer-file-name (save-buffer))) (defadvice other-frame (before other-frame-now activate) (when buffer-file-name (save-buffer)))
Parfait! Merci :) 6 ans plus tard et encore une bonne réponse