Emacs Dired:复制到当前文件夹

Emacs Dired:复制到当前文件夹

在 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) ./

相关内容