Ich würde gerne wissen, ob es möglich ist, dass der Puffer genau zum Zeitpunkt der Änderung gespeichert wird. zum Zeitpunkt des Key-Up-Ereignisses.
Ich würde gerne wissen, ob es möglich ist, dass der Puffer genau zum Zeitpunkt der Änderung gespeichert wird. zum Zeitpunkt des Key-Up-Ereignisses.
Antworten:
(defun my-instant-save-buffer (eins zwei drei)
"To be hooked into list `after-change-functions'
`after-change-functions' expects functions receiving three arguments.
Arguments are ignored here, but slots needed by add-hook"
(save-buffer))
(add-hook 'after-change-functions 'my-instant-save-buffer)
Ich hatte die gleichen Anforderungen und die Funktion zum automatischen Speichern von Emacs hat bei mir nicht gut funktioniert, da sie keine Funktionen zu c-Funktionen hinzufügen kann. Also habe ich ein Paket geschrieben, das echt automatisch gespeichert wird . Es ist auf Melpa erhältlich.
Sie können es installieren durch
M-x package-install RET real-auto-save
und in Ihrer Konfiguration können Sie hinzufügen
(require 'real-auto-save)
(add-hook 'prog-mode-hook 'real-auto-save-mode)
(setq real-auto-save-interval 1) ;; in seconds
Wenn Ihr Puffer nach jeder Sekunde geändert wird, wird er automatisch gespeichert.
Wenn Sie speziell nach dem Key-Up-Ereignis speichern möchten, können Sie dafür eine Lisp-Funktion schreiben.
Sie können aktivieren auto-save-mode
, sodass Emacs Ihren aktuellen Puffer automatisch in einer anderen Datei speichert. Fügen Sie dann diese Funktion hinzu, auto-save-hook
um sie auch direkt in die eigentliche Datei zu schreiben, die Sie bearbeiten:
(defun save-buffer-if-visiting-file (&optional args)
"Save the current buffer only if it is visiting a file"
(interactive)
(if (and (buffer-file-name) (buffer-modified-p))
(save-buffer args)))
(add-hook 'auto-save-hook 'save-buffer-if-visiting-file)
Laut dem Emacs-Handbuch zur automatischen Speichersteuerung :
Die Variable Auto-Save-Intervall gibt an, wie viele Zeichen zwischen den automatischen Speichern liegen. Standardmäßig ist es 300. Emacs akzeptiert keine zu kleinen Werte: Wenn Sie das automatische Speicherintervall auf einen Wert unter 20 anpassen, verhält sich Emacs so, als wäre der Wert 20.
Wenn Sie also möchten, dass Emacs bei jedem Tastendruck speichert, wechseln Sie auto-save-interval
zu 1
:
(setq auto-save-interval 1)