Un par de ideas.
En primer lugar, si se encuentra invocando un comando como guardar con una frecuencia suficientemente alta, puede considerar un enlace de tecla más corto para el comando. Por ejemplo, también me encontré con el mismo "tic", así que ahora uso f2
en lugar de C-x C-s
para guardar ediciones.
La función que vinculo a f2
guarda todos los almacenamientos intermedios no guardados incondicionalmente. Puede que le resulte útil:
(defun force-save-all()
"Unconditionally saves all unsaved buffers."
(interactive)
(save-some-buffers t))
(global-set-key [f2] 'force-save-all)
Ahora, vamos al problema principal. Usted podría intentar algo como esto (observe que force-save-all
se llama):
(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)
Por supuesto, también se puede obligar a la funcionalidad búfer alternativo a otra tecla, como una tecla de función, por lo que es una operación de una prensa.
Pensé que @seth tenía una gran idea sobre el uso de consejos, pero me di cuenta de que el manual ELisp sugiere que advice not be used for key bindings. No estoy seguro de por qué este es el caso, pero eso es lo que el manual sugiere para su información.
+1 de mí ... se olvidó de buffer-file -name – seth
¡Perfecto! Gracias :) 6 años después y sigue siendo una gran respuesta –