Belirli dosyalar için otomatik yedeklemeleri kapatma


10

Uzun zamandır Emacs'ın tüm dosyalar için yedekleri tek bir klasöre koymasını sağladım:

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

Hemen hemen hiç ziyaret backupsdizini, ancak son zamanlarda ben bir içerdiğini fark çok ait *-autoloads.elı için yedeklerini gerekmez dosyaları. Emacs'a bu tür dosyaların yedeklerini almamasını nasıl söyleyebilirim?

Yanıtlar:


14

Konumu aracılığıyla özelleştirebilirsiniz backup-directory-alist. Listedeki her giriş, bir kalıpla eşleşen dosyaların yedeklerinin nereye yerleştirileceğini belirtir; konum ise nil, yedek orijinal ile aynı dizinde olacaktır. Sıra önemlidir: ilk eşleşme kullanılır.

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

Dosya adı veya konumu temelinde yedeklemeleri tamamen bastırmak istiyorsanız, bunun için yerleşik bir mekanizma yok gibi görünüyor, ancak eklemek için yeterince kolay. Değişken backup-enable-predicate, dosyanın yedekleri olup olmadığını belirleyen bir işlevin adını içerir. Varsayılan ayar normal-backup-enable-predicateyalnızca Emacs'ın geçici dosyalar için kullandığı dizinlerdeki yedeklemeleri engeller. Dosya adını da kontrol eden kendi işlevinizi ekleyebilirsiniz.

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

Bu işlev geri dönse bile t, diğer mekanizmalar yedeklemeleri devre dışı bırakabilir.

Eğer belirlenen belirli bir majör modunda devre dışı yedeklemeler istiyorsanız make-backup-filesiçin nilbüyük modun kurulum çengel (muhtemelen dosya adı ve diğer özelliklerine göre). Değişken arabelleğini yerel yapmayı unutmayın.

Belirli dosyalar için yedeklemeleri devre dışı bırakmanın başka bir yolu da ayarlamaktır backup-inhibited. Bu değişken büyük bir mod değişikliğinden kurtulur. VC, sürüm kontrolü altındaki dosyalarda (içindeki bir giriş aracılığıyla file-find-hook) yedeklemeleri nasıl devre dışı bırakır . Değişken arabelleğini yerel yapmayı unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.