【Emacs】recentfで開いたファイル履歴を記録

スポンサーリンク

最近使ったファイルの履歴を記録しておく。又、履歴一覧からファイル名を選んで、ファイルを開く事もできる。
後記事で紹介する「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管理しないようにした。

参照記事

参照

  1. エコーエリアや Messages バッファにメッセージを表示させたくない – Qiita

コメント

タイトルとURLをコピーしました