emacs - 忽略 diff 中的 Emacs 自动生成的文件

标签 emacs backup diff patch autosave

如何使 diff 忽略 foo.c~ 等临时文件?是否有一个配置文件可以使忽略临时变量成为默认值?

更一般地说:从 tarball 生成“干净”补丁的最佳方法是什么?我很少这样做(通过电子邮件向 OSS 项目提交错误修复),因此我总是为此苦苦挣扎......

编辑:好的,简短的答案是

diff -ruN -x *~ ...

有更好的答案吗?例如,这可以放在配置文件中吗?

最佳答案

这并不能严格回答您的问题,但您可以通过将 Emacs 配置为使用特定目录来保存备份文件来避免该问题。Emacs 或 XEmacs 有不同的实现。

在 GNU Emacs 中

    (defvar user-temporary-file-directory
      (concat temporary-file-directory user-login-name "/"))
    (make-directory user-temporary-file-directory t)
    (setq backup-by-copying t)
    (setq backup-directory-alist
      `(("." . ,user-temporary-file-directory)
        (,tramp-file-name-regexp nil)))
    (setq auto-save-list-file-prefix
      (concat user-temporary-file-directory ".auto-saves-"))
    (setq auto-save-file-name-transforms
      `((".*" ,user-temporary-file-directory t)))

在 XEmacs 中

    (require 'auto-save) 
    (require 'backup-dir) 

    (defvar user-temporary-file-directory
      (concat (temp-directory) "/" (user-login-name)))
    (make-directory user-temporary-file-directory t)
    (setq backup-by-copying t)
    (setq auto-save-directory user-temporary-file-directory)
    (setq auto-save-list-file-prefix 
         (concat user-temporary-file-directory ".auto-saves-"))
    (setq bkup-backup-directory-info
      `((t ,user-temporary-file-directory full-path)))

您还可以使用简单的查找命令将它们全部删除

    find . -name “*~” -delete

请注意,星号和波形符用双引号括起来,以阻止 shell 扩展它们。

顺便说一句,这些严格来说并不是临时文件。它们是文件先前版本的备份,因此您可以在将来随时手动“撤消”上次编辑。

关于emacs - 忽略 diff 中的 Emacs 自动生成的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33073/

相关文章:

emacs - 将错误重定向到 org src 中的结果

macos - 在 Emacs 中查看 LaTeX 输出

c# - 复制到 Dropbox 文件夹时修改 LastWriteTime

linux - 这两个字符串有何不同?

emacs - 与缩进区域作斗争

emacs - emacs 中有哪些好的自定义键绑定(bind)?

linux - 用于检查最新 ZFS 快照的 Shell 脚本

MySQL 5.6 - 如何在没有密码提示的情况下使用 mysqldump 在 Windows 上创建备份

mysql - 需要洞察力 - 同步将在实时站点上使用的生产数据库的最佳实践是什么? CakePHP, Mysql

unix - 用 diff 忽略换行符