Kilka pomysłów.
Po pierwsze, jeśli wywołujesz polecenie takie jak zapis o wystarczająco wysokiej częstotliwości, możesz rozważyć krótsze powiązanie klucza dla polecenia. Na przykład również znalazłem się w posiadaniu tego samego "drgania", więc teraz używam f2
zamiast C-x C-s
do zapisywania zmian.
Funkcja, którą łączę z f2
, bezwarunkowo zapisuje każdy niezapisany bufor. Może się to okazać przydatne:
(defun force-save-all()
"Unconditionally saves all unsaved buffers."
(interactive)
(save-some-buffers t))
(global-set-key [f2] 'force-save-all)
Teraz do głównego numeru. Można spróbować coś takiego (zauważ, że force-save-all
nazywa):
(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)
Oczywiście, można również powiązać funkcje bufora przełącznik do innego klucza, jak klawisza funkcyjnego, tak, że jest to operacja jedno naciśnięcie.
Pomyślałem, że @seth miał świetny pomysł na skorzystanie z porady, ale zauważyłem, że podręcznik ELisp sugeruje, że advice not be used for key bindings. Nie jestem do końca pewien, dlaczego tak się dzieje, ale tak właśnie sugeruje podręcznik dla FYI.
+1 ode mnie ... zapomniałem o pliku bufora -name – seth
Idealny! Dzięki :) 6 lat później i wciąż świetna odpowiedź –