add functions to rename and move a file inclusive buffer
This commit is contained in:
@@ -26,6 +26,39 @@
|
||||
(set-frame-parameter (selected-frame) 'alpha '(90 . 90))
|
||||
(add-to-list 'default-frame-alist '(alpha . (90 . 90)))
|
||||
|
||||
;; source: http://steve.yegge.googlepages.com/my-dot-emacs-file
|
||||
(defun my-rename-buffer-file (new-name)
|
||||
"Rename both current buffer and file it's visiting to NEW-NAME."
|
||||
(interactive "sNew name: ")
|
||||
(let ((name (buffer-name))
|
||||
(filename (buffer-file-name)))
|
||||
(if (not filename)
|
||||
(message "Buffer '%s' is not visiting a file!" name)
|
||||
(if (get-buffer new-name)
|
||||
(message "A buffer named '%s' already exists!" new-name)
|
||||
(progn
|
||||
(rename-file filename new-name 1)
|
||||
(rename-buffer new-name)
|
||||
(set-visited-file-name new-name)
|
||||
(set-buffer-modified-p nil))))))
|
||||
(defun my-move-buffer-file (dir)
|
||||
"Move both current buffer and file it's visiting to DIR."
|
||||
(interactive "DNew directory: ")
|
||||
(let* ((name (buffer-name))
|
||||
(filename (buffer-file-name))
|
||||
(dir
|
||||
(if (string-match dir "\\(?:/\\|\\\\)$")
|
||||
(substring dir 0 -1) dir))
|
||||
(newname (concat dir "/" name)))
|
||||
(if (not filename)
|
||||
(message "Buffer '%s' is not visiting a file!" name)
|
||||
(progn
|
||||
(copy-file filename newname 1)
|
||||
(delete-file filename)
|
||||
(set-visited-file-name newname)
|
||||
(set-buffer-modified-p nil)
|
||||
t))))
|
||||
|
||||
;; recentf stuff
|
||||
(use-package recentf
|
||||
:config
|
||||
|
||||
Reference in New Issue
Block a user