我如何隐藏emacs创建的备份文件?

我在使用vi很长一段时间后才开始使用emacs。 :)

有一件令我讨厌的事情是,当我修改一个文件并保存并退出emacs时,我看到一个名为filename~ (如果我编辑的文件是filename )创建了一个备份文件。

有什么办法可以解决这个问题吗? 或者隐藏这些文件? 当我执行ls的目录时,看到大量的备份文件是非常烦人的。


您可以使用以下代码将它们移动到它们自己的文件夹中:

;; Don't clutter up directories with files~
(setq backup-directory-alist `(("." . ,(expand-file-name
                                    (concat dotfiles-dir "backups")))))

;; Don't clutter with #files either
(setq auto-save-file-name-transforms
      `((".*" ,(expand-file-name (concat dotfiles-dir "backups")))))

或者你可以完全删除它们,如下所示:

(setq make-backup-files nil)
(setq auto-save-default nil)

就我个人而言,我会小心谨慎地将它们移除,因为它们可以有用。 进一步的讨论在这里:

  • http://www.emacswiki.org/emacs/BackupDirectory
  • http://www.emacswiki.org/emacs/AutoSave
  • 我会推荐检查一下emacs-starter-kit,它会分析出人们在访问emacs时遇到的一系列问题,并且使用相当频繁。

    http://github.com/technomancy/emacs-starter-kit/blob/master/starter-kit-misc.el


    更新:

    似乎对如何使用这些功能存在很多困惑。 稍后我会稍微玩一下,但这里有更多信息。 请注意, auto-save-file-name-transforms

    让您指定一系列正则表达式和替换来转换自动保存文件名[emacs-manual]

    所以它不只是添加文件夹名称一样简单。 这表示,从谷歌搜索看来,以下可能只是做你想做的事情:

    ;;; backup/autosave
    (defvar backup-dir (expand-file-name "~/.emacs.d/backup/"))
    (defvar autosave-dir (expand-file-name "~/.emacs.d/autosave/"))
    (setq backup-directory-alist (list (cons ".*" backup-dir)))
    (setq auto-save-list-file-prefix autosave-dir)
    (setq auto-save-file-name-transforms `((".*" ,autosave-dir t)))
    

    http://www.google.com/codesearch?hl=en&lr=&q=auto-save-file-name-transforms&sbtn=Search


    ~/.emacs的以下行会将所有自动保存和备份文件放在/tmp

    (setq backup-directory-alist
          `((".*" . ,temporary-file-directory)))
    (setq auto-save-file-name-transforms
          `((".*" ,temporary-file-directory t)))
    

    在你的.emacs中:

    (setq make-backup-files nil)
    

    编辑:如果你不熟悉.emacs文件,它是一个名为.emacs的文件,驻留在用户$ HOME目录中。 如果你还没有,你可以创建它,emacs会在启动时加载它。

    链接地址: http://www.djcxy.com/p/38549.html

    上一篇: How can I hide the backup files that emacs creates?

    下一篇: How to delete files with exclamation marks! using emacs' delete