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' Version 2018-06-18 2021-09-30" (interactive "P") (let (($fpath (if (string-equal major-mode 'dired-mode) (progn (let (($result (mapconcat 'identity (dired-get-marked-files) "\n"))) (if (equal (length $result) 0) (progn default-directory ) (progn $result)))) (if (buffer-file-name) (buffer-file-name) (expand-file-name default-directory))))) (kill-new (if DirPathOnlyQ (progn (message "Directory copied: %s" (file-name-directory $fpath)) (file-name-directory $fpath)) (progn (message "File path copied: %s" $fpath) $fpath )))))
Be sure to give it a easy key. [see Emacs: How to Define Keybinding]