Làm cách nào tôi có thể thiết lập Emacs để tất cả các bản sao lưu được đặt vào một thư mục sao lưu? ví dụ/MyEmacsBackups
Làm cách nào tôi có thể thiết lập Emacs để tất cả các bản sao lưu được đặt vào một thư mục sao lưu? ví dụ/MyEmacsBackups
Câu trả lời:
Kiểm tra backup-directory-alist
, cho phép bạn thiết lập các vị trí sao lưu bằng tệp regrec. Để có mọi thứ, hãy vào một thư mục, thử một cái gì đó như:
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
Đối với người hoang tưởng thực sự (như bản thân tôi), cũng có bản sao lưu mỗi lần lưu , mà (như tên cho thấy) sao lưu các tệp của bạn mỗi khi chúng được lưu ở một vị trí thuận tiện. Điều này cung cấp thêm một lớp bảo vệ so với kiểm soát phiên bản truyền thống, ví dụ cho những trường hợp đó khi bạn vô tình xóa thư mục làm việc của mình mà không kiểm tra nội dung nào đó.
Sau đây là một mã nhanh từ của tôi .emacs
. Nó không chỉ đặt các bản sao lưu vào một thư mục cụ thể, mà còn tự động lưu và thực hiện tương tự cho các tệp tramp để chúng không được đưa vào hệ thống từ xa.
;; Put backup files neatly away
(let ((backup-dir "~/tmp/emacs/backups")
(auto-saves-dir "~/tmp/emacs/auto-saves/"))
(dolist (dir (list backup-dir auto-saves-dir))
(when (not (file-directory-p dir))
(make-directory dir t)))
(setq backup-directory-alist `(("." . ,backup-dir))
auto-save-file-name-transforms `((".*" ,auto-saves-dir t))
auto-save-list-file-prefix (concat auto-saves-dir ".saves-")
tramp-backup-directory-alist `((".*" . ,backup-dir))
tramp-auto-save-directory auto-saves-dir))
(setq backup-by-copying t ; Don't delink hardlinks
delete-old-versions t ; Clean up the backups
version-control t ; Use version numbers on backups,
kept-new-versions 5 ; keep some new versions
kept-old-versions 2) ; and some old ones, too
;; put all backup files into ~/MyEmacsBackups
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
(setq backup-by-copying t)