특정 파일에 대한 자동 백업 끄기


10

오랫동안 Emacs는 모든 파일에 대한 백업을 단일 폴더에 넣었습니다.

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