假设我们在某个目录上打开了Dired缓冲区。如何将目录路径发送到剪贴板?
此外,当Dired光标位于特定文件上时,如何做同样的事情,而无需先打开文件?
假设我们在某个目录上打开了Dired缓冲区。如何将目录路径发送到剪贴板?
此外,当Dired光标位于特定文件上时,如何做同样的事情,而无需先打开文件?
Answers:
将光标移动到目录标题行(显示目录的位置-例如,use M-<
),然后单击w
。这会将目录名称复制到kill ring。(w
从Dired复制任何文件名,它也适用于目录头。)
如果尚未这样做,请自定义x-select-enable-clipboard
为non- nil
,这样会将选择内容复制到剪贴板。
@Constantine的评论很有意义。无需移动到目录标题行来获取绝对名称,您可以C-0 w
在任何文件或目录行上使用。这样会将绝对文件名放在剪贴板中。粘贴时,只需删除相对文件名部分,即可获得绝对目录名。
我按照建议设置x-select-enable-clipbard
,t
但是没有用。我从这里使用这段代码:http : //blog.binchen.org/posts/copy-file-name-or-full-path-of-file-in-emacs-dired-buffer-into-system-clipboard .html
;; {{ copy the file-name/full-path in dired buffer into clipboard
;; `w` => copy file name
;; `C-u 0 w` => copy full path
(defadvice dired-copy-filename-as-kill (after dired-filename-to-clipboard activate)
(with-temp-buffer
(insert (current-kill 0))
(shell-command-on-region (point-min) (point-max)
(cond
((eq system-type 'cygwin) "putclip")
((eq system-type 'darwin) "pbcopy")
(t "xsel -ib")
)))
(message "%s => clipboard" (current-kill 0))
)
C-h k w
,dired
缓冲区中的表示“使用零前缀arg,使用每个已标记文件的绝对文件名。”,即“按C-0 w
获取绝对路径”。