Пару идей.
Во-первых, если вы вызываете команду как сохранение с достаточно высокой частотой, вы можете рассмотреть более короткое связывание ключей для этой команды. Например, я также обнаружил, что у меня такое же «дергание», поэтому теперь я использую f2
вместо C-x C-s
для сохранения изменений.
Функция, которую я связываю с f2
, экономит каждый несохраненный буфер безоговорочно. Вам может показаться полезным:
(defun force-save-all()
"Unconditionally saves all unsaved buffers."
(interactive)
(save-some-buffers t))
(global-set-key [f2] 'force-save-all)
Теперь, в главном выпуске. Вы могли бы попробовать что-то вроде этого (обратите внимание, что force-save-all
называется):
(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)
Конечно, вы можете также связать функциональность переключателя буфера в другой ключ, как ключ функции, так что это операция одно нажатие.
Я думал, что у @seth было отличное представление об использовании рекомендаций, но я заметил, что руководство ELisp предлагает, что advice not be used for key bindings. Я не совсем уверен, почему это так, но это то, что предлагает руководство FYI.
+1 от меня ... забыли о файле buffer -name – seth
Отлично! Спасибо :) 6 лет спустя и все еще отличный ответ –