有没有人有一个emacs lisp hack,可以在dired-do-copy或dired-do-rename期间动态创建一个新目录?我知道它可以在运行这两个命令之一之前创建。某些类型的“你确定......”提示的额外积分。
答案 0 :(得分:3)
看起来像是应用建议的情况。问题是:做什么
咨询。查看dired代码,似乎正确的目标是
dired-mark-read-file-name
用于读取目的地
文件名。这将有效:
(defadvice dired-mark-read-file-name (after rv:dired-create-dir-when-needed (prompt dir op-symbol arg files &optional default) activate)
(when (member op-symbol '(copy move))
(let ((directory-name (if (< 1 (length files))
ad-return-value
(file-name-directory ad-return-value))))
(when (and (not (file-directory-p directory-name))
(y-or-n-p (format "directory %s doesn't exist, create it?" directory-name)))
(make-directory directory-name t)))))
请注意,可能会删除第一个when
(when (member op-symbol '(copy move))
),以便在dired中应用更多文件创建案例。但是我不确定何时调用dired-mark-read-file-name,所以我在那里进行测试以减少潜在的不必要的副作用