【问题标题】:How to recursively remove emacs backup files?如何递归删除emacs备份文件?
【发布时间】:2023-04-10 22:24:02
【问题描述】:

在 emacs 中,在 Dired 模式下,我可以使用 ~ 命令将我的所有 emacs 备份标记为删除。有没有办法递归地标记它们,以便我可以删除当前目录和所有子目录中的所有备份?

【问题讨论】:

  • 我有点想在 Emacs 中做这件事。有时,我被困在使用 Windows 并且我并不总是有 bash/find 等可用。如果我可以简单地在 emacs 中完成,我的工作流程将会得到改善。

标签: emacs elisp


【解决方案1】:

如果您使用 *nix 或 cygwin,您应该可以这样做

find -name '*~' -exec rm {} \;

【讨论】:

  • 忘记点了!。否则我喜欢这个。
【解决方案2】:

您可以定义两种 dired:平面和递归。例如:

(defun op-i:dired (rec)
  "customized dired: will display directory recursively when called with an argument"
  (interactive "P")
  (let ((dir (car (find-file-read-args "Dired: " nil))) 
        (opts (if rec (read-string "options: " "-lhAR") "-lhA")))
    (if (file-directory-p dir) (dired dir opts))))

(define-key (current-global-map) (kbd "C-x C-d") 'op-i:dired)

然后使用C-u C-x C-d 调用此函数将递归显示dired,使用C-x C-d 将照常进行。

在递归显示 dired 后,您也可以删除备份或递归执行其他操作。

【讨论】:

    【解决方案3】:

    您还可以使用 M-x find-name-dired 和文件模式 *~ 来仅列出 dired 缓冲区中的备份文件。

    【讨论】:

    • M-x 的答案非常适合 OP。
    • 似乎无法在我的 Windows PC 上运行。我需要配置一些额外的东西吗?
    • 啊,我很抱歉;这还需要在 Windows PC 上安装 Unix 风格的 find
    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 2013-09-10
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    相关资源
    最近更新 更多