Setting Emacs up to use your system trash can potentially save your bacon if you mistakenly delete a file, say from dired.
Unsurprisingly, the trash safety net also extends to other Emacs areas. For example, discarding files from Magit (via magit-discard
) becomes a recoverable operation. As an eshell user, the trash can also help you recover from rm
blunders.
You can enable macOS system trash in Emacs by setting trash-directory
along with defining system-move-file-to-trash
:
(setq trash-directory "~/.Trash")
;; See `trash-directory' as it requires defining `system-move-file-to-trash'.
(defun system-move-file-to-trash (file)
"Use \"trash\" to move FILE to the system trash."
(cl-assert (executable-find "trash") nil "'trash' must be installed. Needs \"brew install trash\"")
(call-process "trash" nil 0 nil "-F" file))
powered by LMNO.lol