Avoid superfluous buffers when sudo-editing

When invoking 'doom/sudo-this-file', do not
keep the old buffer around, since it is most
likely no longer needed.
This commit is contained in:
Ralf Beckmann 2019-11-14 20:40:40 +01:00
parent 7a810d53a0
commit 12fcd3857d

View file

@ -313,26 +313,26 @@ file if it exists, without confirmation."
(`aborted (message "Aborted"))
(_ t)))
(defun doom--sudo-file (file)
(let ((host (or (file-remote-p file 'host) "localhost")))
(concat "/" (when (file-remote-p file)
(concat (file-remote-p file 'method) ":"
(if-let (user (file-remote-p file 'user))
(concat user "@" host)
host)
"|"))
"sudo:root@" host
":" (or (file-remote-p file 'localname)
file))))
;;;###autoload
(defun doom/sudo-find-file (file)
"Open FILE as root."
(interactive "FOpen file as root: ")
(let* ((host (or (file-remote-p file 'host) "localhost"))
(f (concat "/" (when (file-remote-p file)
(concat (file-remote-p file 'method) ":"
(if-let (user (file-remote-p file 'user))
(concat user "@" host)
host)
"|"))
"sudo:root@" host
":" (or (file-remote-p file 'localname)
file))))
(if (and buffer-file-name (equal file (file-truename buffer-file-name)))
(find-alternate-file f)
(find-file f))))
(find-file (doom--sudo-file file)))
;;;###autoload
(defun doom/sudo-this-file ()
"Open the current file as root."
(interactive)
(doom/sudo-find-file (file-truename buffer-file-name)))
(find-alternate-file (doom--sudo-file buffer-file-name)))