changeset 454:2f24474b1f84

move-file: new function for emacs to move a file and fix up the buffer
author Augie Fackler <raf@durin42.com>
date Sat, 10 Dec 2016 18:43:17 -0500
parents 6f3342c9e53d
children b60cd2f46acd
files .elisp/settings/99.move-file.el
diffstat 1 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/.elisp/settings/99.move-file.el
@@ -0,0 +1,17 @@
+;; emacs move-file function from http://zck.me/emacs-move-file
+
+(defun move-file (new-location)
+  "Write this file to NEW-LOCATION, and delete the old one."
+  (interactive (list (if buffer-file-name
+                         (read-file-name "Move file to: ")
+                       (read-file-name "Move file to: "
+                                       default-directory
+                                       (expand-file-name (file-name-nondirectory (buffer-name))
+                                                         default-directory)))))
+  (when (file-exists-p new-location)
+    (delete-file new-location))
+  (let ((old-location (buffer-file-name)))
+    (write-file new-location t)
+    (when (and old-location
+               (file-exists-p new-location))
+      (delete-file old-location))))