SPC SPC delete-this-file
lets me
quickly delete the file my current buffer is editing, and optionally the
buffer too:
defun delete-this-file (&optional buffer-too)
("P")
(interactive let* ((bfn (buffer-file-name))
(if buffer-too
(prompt (format "Delete %s and kill this buffer? " bfn)
(format "Delete %s? " bfn))))
(when (and bfn (yes-or-no-p prompt))
(delete-file bfn)
(when buffer-too
(
(kill-this-buffer)))))
defun rename-file-and-buffer (new-name)
("Renames both current buffer and file it's visiting to NEW-NAME."
"sNew name: ")
(interactive let ((name (buffer-name))
(
(filename (buffer-file-name)))if (not filename)
("Buffer '%s' is not visiting a file!" name)
(message if (get-buffer new-name)
("A buffer named '%s' already exists!" new-name)
(message progn
(rename-file filename new-name 1)
(
(rename-buffer new-name)
(set-visited-file-name new-name)nil))))))
(set-buffer-modified-p
defun move-buffer-file (dir)
("Moves both current buffer and file it's visiting to DIR."
"DNew directory: ")
(interactive let* ((name (buffer-name))
(
(filename (buffer-file-name))
(dirif (string-match dir "\\(?:/\\|\\\\)$")
(0 -1) dir))
(substring dir "/" name)))
(newname (concat dir if (not filename)
("Buffer '%s' is not visiting a file!" name)
(message progn
(1)
(copy-file filename newname delete-file filename)
(
(set-visited-file-name newname)nil)
(set-buffer-modified-p t))))