Emacs: Copy File Path of Current Buffer 🚀
Here's a command to copy the file path of current buffer.
(defun xah-copy-file-path (&optional DirPathOnlyQ) "Copy current buffer file path or dired path. Result is full path. If `universal-argument' is called first, copy only the dir path. If in dired, copy the current or marked files. If a buffer is not file and not dired, copy value of `default-directory'. URL `http://xahlee.info/emacs/emacs/emacs_copy_file_path.html' Created: 2018-06-18 Version: 2021-09-30" (interactive "P") (let ((xfpath (if (eq major-mode 'dired-mode) (progn (let ((xresult (mapconcat #'identity (dired-get-marked-files) "\n"))) (if (equal (length xresult) 0) (progn default-directory ) (progn xresult)))) (if buffer-file-name buffer-file-name (expand-file-name default-directory))))) (kill-new (if DirPathOnlyQ (progn (message "Directory copied: %s" (file-name-directory xfpath)) (file-name-directory xfpath)) (progn (message "File path copied: %s" xfpath) xfpath )))))
Be sure to give it a easy key. 〔see Emacs Keys: Define Key〕