Ostatnio miałem przez pewien czas użytkownika Sublime Text wypróbowującego Emacsa i był zainteresowany uzyskaniem tego samego zachowania automatycznego zapisywania w Emacsie.
Zasadniczo chciał, aby wszystkie bufory były zapisywane za każdym razem, gdy ramka traciła ostrość (naprawdę zapisywana, a nie tylko archiwizowana). Dotyczy to także przełączania okien na zupełnie inną aplikację.
Nie mogłem znaleźć żadnego zdarzenia, które zostało wywołane podczas przełączania do innej aplikacji. Czy istnieje takie wydarzenie lub istnieje inny sposób na osiągnięcie tego samego zachowania?
Uwaga: rozwiązanie oparte na czasie nie było zadowalające, podobnie jak domyślne zachowanie automatycznego tworzenia kopii zapasowych. W szczególności chciał, aby bufory były zapisywane (jak w save-buffer
) dla wszystkich plików.
defadvice
wersję, na wypadek gdyby post bloga się nie powiódł? Dzięki!(add-hook 'focus-out-hook (lambda () (flet ((message (format &rest args) nil)) (save-some-buffers t))))
Jest
focus-autosave-mode
teraz Jest dostępny za pośrednictwem MELPA. Dlaczego nie dać ci szansy na włamanie się do ciebie?źródło
Spowoduje to zapisanie wszystkich niezapisanych buforów odwiedzających plik na emacsie 24.4
źródło
add-to-list
na haku, używajadd-hook
. Odpowiedź shosti zawiera już poprawną formę tego fragmentu.Dla wędrowców, którzy się na to natkną, używam tego formularza:
Użycie
cl-letf
irytujących(No files need saving)
komunikatów zapobiega zatykaniu obszaru echa.źródło