open-junk-file + howmでサンプルコードのメモ
**の言語で〇〇する時はどうするんだっけ?みたいなメモをどう残すか。
こういう細かいメモは、新しい事を覚えた端から古い事を忘れてしまうので、かつて自分が試したコードは、出来るだけ手軽に検索出来る形で残しておきたい。という訳で、ただ置いておくだけで検索出来る場所、blogとかqiitaに、そういったメモを置いていた。しかし、これは「残す為の動作」がそれなりに重たくて、あんまりメモが溜まらない。大抵、M-x open-junk-file で一時ファイルを開いて、動作する事が確認出来たらもうそのメモは放っとかれてしまう。で、ハードディスクにファイル名の日付だけが手がかりとなったメモが大量に残る。
しかし、open-junk-fileでファイルを開く場所をhowmの管理下に設定しさえすれば、サンプルコードを書いてファイル保存するだけで、howmで検索できるようになるじゃん、と気が付いた。ついでに、拡張子から言語を判断して、ファイルの先頭に検索用のタグをコメントで入れておけば、一覧性も上がって便利なんではないかと。
;;; open junk file (require 'open-junk-file) ;; howmの中にファイル作成 (setq open-junk-file-format "~/howm/junk/%Y/%m/%d_%H%M%S.") ;; howm用のタグを挿入 (defvar open-junk-ext-tags-alist '(("el" ";;" "ELISP") ("cpp" "//" "CPP") ("r" "#" "R") ("py" "#" "PYTHON") ("hs" "--" "HASKELL") ("scm" ";;" "SCHEME"))) (defadvice open-junk-file (after open-junk-file-insert-howm-comment-advice activate) "After open-junk-file, insert a tag into the opened buffer to be searched by howm." (let* ((ext (replace-regexp-in-string "^.*\\.\\([^\\.]+\\)$" "\\1" buffer-file-name)) (asc (assoc ext open-junk-ext-tags-alist)) (prefix (cadr asc)) (tag (caddr asc))) (insert prefix) (insert " %" tag)))