Ein paar Ideen.
Erstens, wenn Sie einen Befehl wie save mit einer ausreichend hohen Frequenz aufrufen, könnten Sie eine kürzere Tastenanbindung für den Befehl betrachten. Zum Beispiel fand ich mich auch mit dem gleichen "Zucken", also verwende ich jetzt f2
anstelle von C-x C-s
zum Speichern von Änderungen.
Die Funktion, die ich an f2
binde, speichert jeden nicht gespeicherten Puffer bedingungslos. Sie könnten es nützlich finden:
(defun force-save-all()
"Unconditionally saves all unsaved buffers."
(interactive)
(save-some-buffers t))
(global-set-key [f2] 'force-save-all)
Jetzt, auf das Hauptproblem. Man könnte so etwas wie dies versucht (man beachte, dass force-save-all
genannt wird):
(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)
Natürlich können Sie auch die Schalter Puffer Funktionalität auf einem anderen Schlüssel binden, wie eine Funktionstaste, so dass es sich um einen Pressvorgang ist.
Ich dachte, dass @seth hatte eine großartige Idee über die Verwendung von Beratung, aber ich bemerkte, dass die ELisp Handbuch schlägt vor, dass advice not be used for key bindings. Ich bin nicht ganz sicher, warum das der Fall ist, aber das ist, was das Handbuch FYI schlägt.
+1 von mir ... vergessen Puffer-Datei -name – seth
Perfekt! Danke :) 6 Jahre später und immer noch eine gute Antwort –