ChangeLog メモの基本は箇条書き (なのかな?)。短文で思ったこと、考えた事をメモっておけるのがいい所。長文を書くのには向いていない。でも、時々長い文章を入れたい時があるのだよね。例えば、なくなってしまいそうなウェブページのバックアップを取りたいとか、プログラムのサンプル・コードとか。
そこで強引に長いテキストを ChangeLog メモに含めればいいかというと、問題は簡単じゃない。困るのは、メモが冗長になること。言い換えれば、不必要なメモが混入すること。というか、ウェブをバックアップしたら、それは「全文」であってメモじゃないし。だから、長いテキストは別ファイルにすべきだと思う。「ポケット一つの原則」に反しちゃうけど、仕方がない。そして、 ChangeLog メモには、そのテキストの要約 (サマリー?, メモ?) とリンクを張ればいい。
howm
howm は、「一人お手軽 Wiki もどき」の略。 ChangeLog メモ が一つのファイルにたくさんのメモを書くのに対して、 howm は一つのディレクトリーにたくさんのファイルを書く。この形式を ChangeLog メモで使う仕組み (quasi-howm) を作った。
quasi-howm の使い方
ChangeLog メモで C-c, ( M-x quasi-howm) すると、次のようなタグが挿入され
(howm: 20050613-214149.howm)
新しいバッファーが開く。テンプレートは howm と同じ。
= タイトル [2005-06-13 21:41] 本文...
一行目にタイトルを書いて、以下本文を書く形。書き終えたら、保存。
ChangeLog メモから、 howm なファイルにアクセスするには、上のタグの上にポインターを持っていって C-c RET。
たったこれだけ。簡単でしょ。
quasi-howm のインストール
まず、以下のコードを .emacs に入れる。
;;
;; quasi-howm
;;
(defun quasi-howm ()
(interactive)
(let ((file (format "%s%s.howm" quasi-howm-dir
(format-time-string quasi-howm-file-name-format))))
(unless (file-exists-p (file-name-directory file))
(make-directory (file-name-directory file) t))
(when (equal (buffer-file-name) (expand-file-name clmemo-file-name))
(unless (save-excursion (backward-char 1) (looking-at "^\t"))
(or (looking-at "^") (insert "\n"))
(insert "\t"))
(insert (format "(howm: %s)" (file-name-nondirectory file))))
(find-file file))
(insert "= ")
(save-excursion
(insert "\n" (format-time-string "[%Y-%m-%d %H:%M]\n"))))
(defun clmemo-tag-howm-open-file ()
(interactive)
(let ((file (buffer-substring-no-properties
(progn (beginning-of-line) (search-forward "(howm: "))
(1- (search-forward ")")))))
(setq file (concat
(substring file 0 4) "-"
(substring file 4 6) "/"
file))
(find-file (concat quasi-howm-dir file))))
(add-hook 'clmemo-mode-hook
'(lambda ()
(define-key clmemo-mode-map "\C-c," 'quasi-howm)))
(setq clmemo-tag-list
(cons '("howm" clmemo-tag-howm-open-file) clmemo-tag-list))
それから、quasi-howm の設定も .emacs に追加。
(defvar quasi-howm-dir "~/personal/memo/howm/") (defvar quasi-howm-file-name-format "%Y-%m/%Y%m%d-%H%M%S")
quasi-howm-dir 以下に quasi-howm したファイルが保存される。 quasi-howm-file-name-format はファイル名のフォーマット。上の例だと 2005-06/ というディレクトリーの下に 20050613-214149.howm というファイル名ができる。 %Y とかは、関数 format-time-string の説明を参照のこと。
0 件のコメント:
コメントを投稿