Emacs: Auto Save
Real Auto Save File
This is the best solution i use since about 2017. Most simple code, reliable, and practical.
Save all files when you switch out of emacs.
Put this in emacs init.
(defun xah-save-all-unsaved () "Save all unsaved files. no ask. Version 2019-11-05" (interactive) (save-some-buffers t )) (if (version< emacs-version "27") (add-hook 'focus-out-hook 'xah-save-all-unsaved) (setq after-focus-change-function 'xah-save-all-unsaved))
disable emacs's #auto-save# backup
;; stop creating those #auto-save# files (setq auto-save-default nil)
auto-save-mode, however, it's not what you think.
auto-save-mode periodically saves a copy of your file with the name
When you save the file, those #files# are deleted automatically.
In case of crash or electricity outage, when you open a file afterward, emacs will detect those #files# and ask if you want to recover.
But the problem is, even if no crash, in lots of situations (such as sync to server), you'll find those #files# annoying, because they are often symbolic links to non-existent files, and will cause tools like rsync to complain or choke some dir walk scripts.
See also: Emacs: Turn Off Backup
stop emacs from creating .#lock file links
emacs backup is so annoying. even when you have it off (setq auto-save-default nil) , it still creates temp # files. which crashes script that traverse dir.
(setq create-lockfiles nil)
This will completely stop emacs from creating temoporary symbolic link file named “#something”.
(disable lock file may be a problem if you have situations where a file is being edited by different people or instances of emacs.)
2018-10-12 thanks to Dale Hagglund [ https://twitter.com/DaleHagglund/status/1050786629844004865 accessed: 2018-10-12] for create-lockfiles
alternative solution and problem
You can set emacs to auto save files directly, instead of creating those #filename#.
Put the following in your emacs init:
(setq auto-save-default t) (setq auto-save-visited-file-name t)
However, this does not work well. Emacs still generates those #files#, this time, named like this:
.#xxtemp.201601134145.44920.el -&gt; firstname.lastname@example.org:1452244010
If you have scripts going thru your machine, you get this error:
error: cannot open /home/john/web/.#vocabulary.html No such file or directory
(info "(elisp) Auto-Saving")
There are probably ways to fix this, with hooks or timer, but i haven't looked into.
thanks to Fuqiao Xue (xfq) [https://github.com/xfq/] and finalpatch [http://www.weibo.com/u/1885517634]
thanks to http://irreal.org/blog/?p=4867, Anna Pawlicka (@AnnaPawlicka)
Put $5 at https://www.patreon.com/xahlee , or goto paypal.com and pay to Xah@XahLee.org . Message me on XahLee discord, say so, ask me questions.
Or Buy Xah Emacs Tutorial