読者です 読者をやめる 読者になる 読者になる

Thanks Driven Life

日々是感謝

一週間recentf。

emacs
藤宮「もう、ファイルの履歴保存しないで‥」
長谷「え、なんで急に!」

gongo/emacs-recentf-oneweek · GitHub

藤宮「最初に言ったでしょ?私、ファイルの開いた履歴残しちゃいけないって。
   だから、全部開いてなかったことにして欲しいの…私も、全部忘れるから…」
長谷「そんなの無理だよ…忘れるなんてそんな……藤宮さんだって無理でしょ!?」
藤宮「忘れちゃうの!!」
長谷「え…?」
藤宮「init.el とかに書かれちゃうと起動時に全部忘れちゃうの!!」
長谷「藤宮さん?」

(add-to-list 'load-path "/path/to/emacs-recentf-oneweek")
(require 'recentf-oneweek)
(recentf-oneweek:enable)

藤宮「私ね、Emacs で開いたファイルの記憶、月曜日には消えちゃうの…」
長谷「え…」
藤宮「正確には recentf-oneweek->start-week でセットした曜日ね」
長谷「藤宮さん?」

(setq recentf-oneweek->start-week 1) ;; Mon

藤宮「火曜日に忘れたくなったら 2 をセットしてね」
長谷「藤宮さん?」

藤宮「特によく開いてたファイルとか、もっと弄っていたいって思ったファイルだけが
   一週間毎にリセットされちゃうんだ。 .recentf は、例外だけど」
長谷「藤宮さん…」
藤宮「ちなみに消去される条件は各ファイルアクセス数の全体の平均値を越えたやつだよ」
長谷「藤宮さん?」


(prin1 recentf-oneweek->memories)
;; (ファイル名 . アクセス回数)
;; => '(
;;       ("/Users/gongo/Development/emacs/toml/versions/toml-v0.1.0.md" . 87)
;;       ("/Users/gongo/Development/emacs/toml/tests/hard_example.yaml" . 87)
;;       ("/Users/gongo/Development/emacs/toml/README.md" . 80)
;;       ("/Users/gongo/Development/emacs/toml/LICENSE" . 19)
;;       ("/Users/gongo/Development/emacs/toml/CHANGELOG.md" . 28)
;;       ("/Users/gongo/Development/emacs/recentf-oneweek/recentf-oneweek.el" . 47)
;;       ("/Users/gongo/Development/emacs/recentf-oneweek/README.md" . 78)
;;       ;; (skip)
;;       ("/Users/gongo/Development/emacs/recentf-oneweek/.gitignore" . 23)
;;       ("/Users/gongo/Development/emacs/airplay-el/README.mkdn" . 83)
;;       ("/Users/gongo/Development/emacs/airplay-el/airplay.elc" . 8)
;;       ("/Users/gongo/Development/emacs/airplay-el/airplay.el" . 50)
;;       ("/Users/gongo/Development/emacs/airplay-el/airplay-video-server.el" . 96)
;;       ("/Users/gongo/Development/emacs/airplay-el/.gitignore" . 81)
;;     )

長谷「あ…で、でも大丈夫だ。このファイルは開いただけでバッファ移動しかしてないでしょ?だから…」
藤宮「基本的には find-file や write-file の回数がカウントされるんだけど
   バッファ移動した時やディレクトリもカウントしたい場合は recentf-ext を使うのもいいわね」
長谷「そんなのって…」

EmacsWiki: recentf-ext.el

日曜日

(recentf-oneweek:next-week-p)
;; => nil

(length recentf-list)
;; => 1916

月曜日

(recentf-oneweek:next-week-p)
;; => t

長谷「あの、藤宮さん…」
藤宮「…な、なんですか?」

(length recentf-list)
;; => 952
(prin1 recentf-oneweek->memories)
;; => nil

長谷「!?」

藤宮「用がないなら、これで…」
長谷「藤宮さん!」
藤宮「!?」
長谷「僕と…僕と、ファイル履歴保存してください!!」

(recentf-oneweek:disable)

see also

一週間vimrc - 永遠に未完成