2010-01-07 21 views
14

Tôi mới bắt đầu sử dụng các emacs sau khi đã sử dụng vi trong một thời gian dài. :)Làm cách nào để ẩn các tệp sao lưu mà các emacs tạo ra?

Một điều khiến tôi khó chịu là bất cứ khi nào tôi sửa đổi tệp, lưu và thoát khỏi các emac, tôi thấy tệp sao lưu được tạo trong cùng thư mục có tên filename~ (nếu tệp tôi chỉnh sửa là filename).

Có cách nào để tôi có thể loại bỏ điều này không? Hoặc ẩn các tệp này? Đó là rất gây phiền nhiễu khi thấy tấn tệp sao lưu khi tôi thực hiện ls của thư mục.

+2

Những sẽ là những gì chúng ta thường gọi 'tập tin sao lưu'. –

Trả lời

19

Bạn có thể di chuyển chúng vào một thư mục riêng của họ với đoạn mã sau:

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

Hoặc bạn có thể loại bỏ chúng hoàn toàn, như vậy:

(setq make-backup-files nil) 
(setq auto-save-default nil) 

Cá nhân tôi sẽ cảnh giác với loại bỏ chúng vì chúng có thể hữu ích. thảo luận thêm ở đây:

Tôi muốn giới thiệu kiểm tra ra các emacs-khởi-kit nó loại ra một tải trọng của vấn đề mà mọi người có khi đến với emacs, và được sử dụng khá nhiều.

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


Cập nhật:

Dường như có nhiều nhầm lẫn về cách sử dụng các chức năng. Tôi sẽ chơi một chút sau đó nhưng đây là một số thông tin khác. Lưu ý rằng auto-save-file-name-transforms:

phép bạn chỉ định một loạt các biểu thức thông thường và thay thế để chuyển đổi tự động lưu tên file [emacs-manual]

vì vậy nó không chỉ đơn giản như thêm vào một tên thư mục. Điều đó nói rằng có vẻ như từ một google nhanh chóng tìm kiếm những điều sau đây chỉ có thể làm những gì tất cả các bạn muốn:

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

+0

Cảm ơn! Có một cái gì đó tương tự cho các tập tin được tạo với tên # filename #? – n1kh1lp

+0

thay đổi trong câu trả lời của tôi. –

+0

Cảm ơn rất nhiều James! :) – n1kh1lp

0

Trong emacs của bạn:

(setq make-backup-files nil) 

Edit: Nếu bạn không quen thuộc với tệp .emacs, đó là tệp có tên .emacs nằm trong thư mục $ HOME của người dùng của bạn. Nếu bạn chưa có, bạn có thể tạo nó và các emacs sẽ tải nó khi khởi động.

+0

Xin cảm ơn! Có một cái gì đó tương tự cho các tập tin được tạo với tên # filename #? – n1kh1lp

+0

Tôi không chắc chắn về điều đó. Thành thật mà nói, tôi ngần ngại để loại bỏ chúng hoàn toàn, bởi vì thường có nghĩa là emacs đã được đóng lại mà không lưu một bộ đệm. Tôi thường lưu thường xuyên, vì vậy nếu một tập tin # # không tồn tại, nó có nghĩa là emacs/máy bị rơi; Tôi thường kết thúc bằng cách sử dụng nó để phục hồi một tập tin. –

5

của bạn Các dòng sau trong ~/.emacs sẽ đặt tất cả các tính năng tự động lưu và các tập tin sao lưu trong /tmp:

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

Dường như giải pháp tốt cho tôi. Đó là cái tôi đã sử dụng. Cám ơn. –

Các vấn đề liên quan