2010-08-19 34 views
32

Emac có khả năng mở các tệp gần đây (ví dụ: menu như Tệp> Mở gần đây ...) không?"Mở gần đây" trong Emacs

Tôi biết rằng Aquamac, đối với OS X, có tính năng này. Nhưng nó có phổ biến với tất cả các phiên bản Emacs không?

Trả lời

13

GNU Emacs thông thường không có menu hiển thị các tệp đang mở gần đây. Tuy nhiên, tất cả các lệnh Emacs đều có lịch sử, bao gồm find-file (C-x C-f). Chọn “File | Mở ”trong menu hoặc mở tệp có số emacsclient cũng thêm vào lịch sử này. Sau khi bạn nhấn C-x C-f, nhấn updown để điều hướng lịch sử của các tệp đã mở.

Lịch sử được lưu giữa các phiên nếu bạn bật tính năng lưu phiên với gói desktop.

+1

Tệp tìm kiếm cũ tốt được thay thế bởi 'ido-find-file' bởi hầu hết mọi người cố ý hoặc vô tình. Lịch sử của ido là một doanh nghiệp hoàn toàn khác. recentf có thể là một giải pháp tốt hơn ở đây. – Jaseem

+4

Tuy nhiên, lịch sử này sẽ bị xóa sau khi bạn đóng các emac. – fiacobelli

+0

@fiacobelli Do đó đề xuất của tôi là sử dụng gói 'máy tính để bàn'. – Gilles

31

Phương pháp thành ngữ nhất để cung cấp chức năng này mà tôi biết là thông qua việc sử dụng recentf-mode (hơn here). Tôi kích hoạt nó trong tập tin khởi của tôi với:

(require 'recentf)

(recentf-mode 1)

Sau đó nó cung cấp một chức năng tương tác, recentf-open-files, mà tôi liên kết với C-x f, cung cấp một trình đơn được đánh số của tập tin vừa mở kéo dài phiên , tức là ngay cả khi bạn tắt các emacs và khởi động lại nó, nó sẽ giữ lại các tệp đã mở gần đây của bạn. Bạn có thể liên kết các chức năng để một máy gia tốc với một dòng trong tập tin khởi tạo của bạn, như:

(global-set-key "\C-xf" 'recentf-open-files)

(Tùy chọn)

Nếu bạn thực hiện sử dụng rộng rãi Tramp, recentf sẽ theo dõi các tập tin quá, và làm điều dọn dẹp định kỳ có thể là một mớ hỗn độn thực sự vì các tập tin ở xa. Ngăn chặn điều này bằng cách đặt này trong tập tin khởi động của bạn:

(setq recentf-auto-cleanup 'never)

+0

Tôi muốn ủng hộ chống lại liên kết gần đây với 'C-x f'. Đó là những gì bạn cần để mở một tập tin cụ thể, mà có thể hoặc maynot được trong lịch sử của chúng tôi. Nếu bạn đã bật ido, hãy sử dụng 'ido-find-file' để tìm và so khớp mờ. Vì vậy, trong trường hợp của tôi, "C-x C-f" của nó được ánh xạ tới 'ido-find-file' và" C-x C-r "liên kết với' tệp mở rộng gần đây – Jaseem

4

GNU Emacs không bao gồm thư viện recentf.el, vì Emacs 22. Chỉ cần làm như đã nêu bởi R.P. Dillon.

5

Nếu bạn chỉ muốn lưu lịch sử minibuffer giữa emacs lời gọi bạn có thể đặt sau trong emacs của bạn:

(savehist-mode 1)

Không giống như các gói máy tính để bàn có thể lưu tất cả đang mở bộ đệm qua lời gọi, điều này chỉ là lịch sử của minibuffer (ví dụ: khi mở một tệp, bạn có thể sử dụng mũi tên lên để điều hướng danh sách các tệp bạn đã mở trong phiên trước).

+0

Tôi nghĩ đây là giải pháp tốt nhất! Bạn không cần máy tính để bàn. Trong thực tế, bạn có thể không muốn tất cả các bộ đệm được lưu ... – Skuge

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