在 Dired 中,复制操作类似于“将标记的文件复制到其他地方”。有没有办法反向执行此操作?
也就是说,我想象我会被问到这样一个问题什么复制(路径),它将被复制/符号链接到当前目录中。(例如,以“让我们在一个地方收集运行命令所需的所有内容”的方式。)
答案1
Mx copy-file RET 将提示输入源文件,然后默认为当前目录。您可以将其绑定到一个键。
或者,如果这还不够好,请告诉我,我会编写命令并发布它。
呃,我还有一些时间,所以这是命令:
(defun dired-copy-file-here (file)
(interactive "fCopy file: ")
(copy-file file default-directory))
(eval-after-load "dired"
'(define-key dired-mode-map "\M-c" 'dired-copy-file-here))
答案2
正如 Aurélien 提到的,处于特定的 Dired 缓冲区中所能获得的唯一优势似乎意味着.
“这里”,因此寻找 shellcp
几乎是你唯一能做的。
我想到的另一个好处是,如果你有其他可见的 dired 缓冲区(C-x2..),当你从你所在的缓冲区移动/复制/链接时(因此你从中选择所有文件),emacs 会给你一些默认目标<down>
作为目的地,当您在迷你缓冲区中提示时,可以通过箭头访问。
假设您打开了 2 个 dired 缓冲区,~/here/
然后~/elsewhere/someplace/
选中 中的几个文件~/here/
,按下C该缓冲区,然后↓应该会为您提供将内容复制到 的默认选项~/elsewhere/someplace/
。单个文件也一样,您会获得默认目录和默认目录+文件名(例如~/here/some long annoying filename you'd like to edit.any
→ ~/elsewhere/someplace/some long annoying filename you'd like to edit.any
)。
只需再按↓一下即可获得更多默认设置。
答案3
你可以做类似的事情
M-!
执行 shell 命令然后
cp -r what_to_copy(path) ./