最近使ったファイルの履歴を記録しておく。又、履歴一覧からファイル名を選んで、ファイルを開く事もできる。
後記事で紹介する「helm」と併用すると、ファイルを開くのがかなり楽になる。
準備
recentfパッケージは標準で組み込まれているが、diredで開いたりする履歴はとってくれない。recentf-ext
パッケージを追加すると、それらの履歴も記録してくれる。
M-x package-install<RET>
recentf-ext
Emacsの設定
下記を初期設定に追加。
尚、私はinit-loaderを利用しており、~/.emacs.d/inits/06_recentf.el
ファイルを作成。また、履歴保存する時のメッセージがエコーエリアに表示されて鬱陶しいので表示しない設定を追加。
;;; recentf.elの設定
(defmacro with-suppressed-message (&rest body)
"Suppress new messages temporarily in the echo area and the `*Messages*' buffer while BODY is evaluated."
(declare (indent 0))
(let ((message-log-max nil))
`(with-temp-message (or (current-message) "") ,@body)))
(require 'recentf)
(setq recentf-save-file "~/.emacs.d/.recentf")
(setq recentf-max-saved-items 1000) ;; recentf に保存するファイルの数
(setq recentf-exclude '(".recentf")) ;; .recentf自体は含まない
;;(setq recentf-auto-cleanup 'never) ;; 保存する内容を整理
(run-with-idle-timer 30 t '(lambda () ;; 30秒ごとに .recentf を保存
(with-suppressed-message (recentf-save-list))))
(require 'recentf-ext)
;; キーバインド
(global-set-key (kbd "C-c o") 'recentf-open-files)
C-c o
キーで履歴一覧を表示。
補足
- 履歴情報は
~/.emacs.d/.recentf
に保存される。都度更新されるので.gitignore
に追記しGit管理しないようにした。
コメント