Как скрыть файлы резервных копий, создаваемые emacs?

Я только начал использовать emacs после долгого использования vi.:)

Меня раздражает то, что всякий раз, когда я изменяю файл, сохраняю его и выхожу из emacs, я вижу файл резервной копии, созданный в том же каталоге с именем filename~ (если файл, который я редактировал, был filename).

Есть ли способ избавиться от этого? Или скрыть эти файлы? Очень неприятно видеть тонны резервных файлов, когда я делаю ls из каталога.

Ответы

Ответ 1

Вы можете переместить их в свою папку со следующим кодом:

;; 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)

Лично я был бы осторожен в их устранении, поскольку они могут пригодиться. Дальнейшее обсуждение здесь:

Я бы порекомендовал проверить emacs-starter-kit, он сортирует нагрузку на проблемы, которые люди приходят в emacs, и довольно активно используется.

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


Update:

Кажется, есть много путаницы в том, как использовать функции. Позже я немного поиграю, но вот еще информация. Обратите внимание, что auto-save-file-name-transforms:

позволяет указать ряд регулярных выражений и замен, чтобы преобразовать имя файла автоматического сохранения [emacs-manual]

так что это не так просто, как добавление в имя папки. Тем не менее, похоже, что из быстрого поиска Google следующее может просто сделать то, что вы все хотите:

;;; 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

Ответ 2

Следующие строки в ~/.emacs помещают все файлы автоматического сохранения и резервного копирования в /tmp:

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

Ответ 3

В ваших .emacs:

(setq make-backup-files nil)

Изменить: Если вы не знакомы с файлом .emacs, это файл с именем .emacs, который находится в вашем каталоге $HOME. Если у вас его еще нет, вы можете просто создать его, и emacs загрузит его при запуске.

Ответ 4

Вот ссылка на тот же вопрос, на который ответил SuperUser и мой ответ. И вопрос StackOverflow под названием Emacs: не создавайте # эти # файлы, когда не сохраняете измененный буфер

И для полноты, как заявили другие; чтобы остановить создаваемые файлы резервных копий, поместите это в свой .emacs

(setq make-backup-files nil)