2005-06-14

ChangeLog メモで Howm を使う quasi-howm |ChangeLogメモ|Howm|Emacs|

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 の説明を参照のこと。

ref

No comments:

Post a Comment