特定のファイルの自動バックアップをオフにする


10

長い間、Emacsにすべてのファイルのバックアップを1つのフォルダーに入れさせてきました。

(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))

私はめったに訪れbackupsたディレクトリを、最近、私はそれが含まれていることに気づいた多く*-autoloads.el私がバックアップを必要としないことのファイルを。Emacsにこれらのタイプのファイルのバックアップを作成しないように指示するにはどうすればよいですか?

回答:


14

を使用して場所をカスタマイズできbackup-directory-alistます。リストの各エントリは、パターンに一致するファイルのバックアップをどこに置くかを示しています。場所がのnil場合、バックアップは元のディレクトリと同じディレクトリにあります。順序が重要です。最初に一致したものが使用されます。

(setq backup-directory-alist '(("-autoloads\\.el\\'")
                               ("." . "~/.emacs.d/backups")))

ファイル名または場所に基づいてバックアップを完全に抑制したい場合、そのための組み込みメカニズムはないように見えますが、追加するのは簡単です。変数にbackup-enable-predicateは、ファイルにバックアップが必要かどうかを決定する関数の名前が含まれています。デフォルト設定normal-backup-enable-predicateでは、Emacsが一時ファイルに使用するディレクトリのバックアップのみが禁止されます。ファイル名をチェックする独自の関数を追加することもできます。

(defvar backup-inhibit-file-name-regexp "-autoloads\\.el\\'"
  "Files whose full path matches this regular expression will not be backed up.")
(defun regexp-backup-enable-predicate (filename)
  "Disable backups for files whose name matches `backup-inhibit-file-name-regexp'.
Also call `normal-backup-enable-predicate'."
  (save-match-data
    (and (not (string-match backup-inhibit-file-name-regexp filename))
     (normal-backup-enable-predicate filename))))
(setq backup-enable-predicate 'regexp-backup-enable-predicate)

この関数がを返したとしてもt、他のメカニズムがバックアップを無効にする可能性があります。

あなたが特定のメジャーモードでは無効にバックアップしたい場合は、設定make-backup-filesnil(おそらく、ファイル名およびその他の特性に基づいて)メジャーモードのセットアップフックに。変数をローカルにすることを忘れないでください。

特定のファイルのバックアップを無効にする別の方法は、を設定することbackup-inhibitedです。この変数は、主要なモード変更後も存続します。これは、VCがバージョン管理下にあるファイルのバックアップを無効にする方法です(のエントリを使用file-find-hook)。変数をローカルにすることを忘れないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.