Quelques idées. Tout d'abord, si vous vous trouvez en invoquant une commande comme save avec une fréquence suffisamment élevée, vous pouvez envisager une raccourcis clavier plus courte pour la commande. Par exemple, je me suis également retrouvé avec le même "twitch", alors maintenant j'utilise f2
au lieu de C-x C-s
pour sauvegarder les modifications.
La fonction que je lie à f2
enregistre tous les tampons non sauvegardés de manière inconditionnelle. Vous pourriez le trouver utile:
(defun force-save-all()
"Unconditionally saves all unsaved buffers."
(interactive)
(save-some-buffers t))
(global-set-key [f2] 'force-save-all)
Maintenant, sur le problème principal. Vous pouvez essayer quelque chose comme ça (notez que force-save-all
est appelé):
(defun my-switch-to-buffer (buffer)
(interactive (list (read-buffer "Switch to buffer: " (cadr buffer-name-history) nil)))
(force-save-all)
(switch-to-buffer buffer))
(global-set-key "\C-xb" 'my-switch-to-buffer)
Bien sûr, vous pouvez également lier la fonctionnalité tampon de passage à une autre clé, comme une touche de fonction, pour que ce soit une opération de presse.
Je pensais que @seth avait une bonne idée sur l'utilisation de conseils, mais j'ai remarqué que le manuel ELisp suggère que advice not be used for key bindings. Je ne suis pas tout à fait sûr pourquoi c'est le cas, mais c'est ce que le manuel suggère FYI.
+1 de moi ... oublié le fichier tampon -name – seth
Parfait! Merci :) 6 ans plus tard et toujours une bonne réponse –