summaryrefslogtreecommitdiffstats
path: root/lisp/init-editing.el
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-08-11 20:32:36 +0200
committerMartin Polden <mpolden@mpolden.no>2020-08-11 20:32:59 +0200
commitc47f7d8986a7ee66e94e9779bf9d4196e252d3c1 (patch)
tree93fde1c0136d8c6d79dbacbdf43458585b85edc2 /lisp/init-editing.el
parent9abe160801caed76b2ad44ae705ced75b0b7fe29 (diff)
editing: Update snippet and source link
Diffstat (limited to 'lisp/init-editing.el')
-rw-r--r--lisp/init-editing.el6
1 files changed, 4 insertions, 2 deletions
diff --git a/lisp/init-editing.el b/lisp/init-editing.el
index 2687d0f..af015e1 100644
--- a/lisp/init-editing.el
+++ b/lisp/init-editing.el
@@ -24,14 +24,16 @@
;; source:
;; http://emacsredux.com/blog/2013/05/04/rename-file-and-buffer/
-;; https://github.com/bbatsov/prelude/blob/master/core/prelude-core.el
+;; https://github.com/bbatsov/crux/blob/dcd693c258ae4d867b18d9a028a828ef6c42a4a6/crux.el#L406
(defun rename-buffer-and-file ()
"Rename current buffer and if the buffer is visiting a file, rename it too."
(interactive)
(let ((filename (buffer-file-name)))
(if (not (and filename (file-exists-p filename)))
(rename-buffer (read-from-minibuffer "New name: " (buffer-name)))
- (let ((new-name (read-file-name "New name: " filename)))
+ (let* ((new-name (read-from-minibuffer "New name: " filename))
+ (containing-dir (file-name-directory new-name)))
+ (make-directory containing-dir t)
(cond
((vc-backend filename) (vc-rename-file filename new-name))
(t