ChangeLogにタグつける

以前にもPythonで集計するトピで書いたけど、今はChangeLogの各エントリを後で関連検索できるようにタグ付けしてる(微妙に無駄かなとも思うんだけど)。

  * topicname: [tag1][tag2]....
  body

みたいな感じ。キッカケを忘れたけど追加でタグ入れたりとかするために入力用にちゃちゃっと下のようなのを書いてみた。

(defvar addtag-current-tag-word nil)

(defun addtag (word)
  (interactive 
   (let ((word (read-from-minibuffer 
		"addtag : " 
		(if (or (null addtag-current-tag-word) current-prefix-arg)
		    (symbol-name (symbol-at-point))
		  addtag-current-tag-word))))
     (list word)))
  (save-excursion 
    (search-backward-regexp "^[ \t]+\\\*.*:")
    (end-of-line)
    (if (looking-back ":")
	(insert " "))
    (insert (format "[%s]" word))
    (setq addtag-current-tag-word word)))

elispあんまり詳しくないので、正しいお作法なのか自信がないし、そもそもこのタグ付けがイケてない気がしてしょうがない。
\C-c\C-aにバインドしてとりあえず楽になったようななってないような気が両方する。まあelisp勉強と割り切っておこう。
なんもしないと前に入れたタグが、\C-uするとカーソルのところにある単語がデフォルトになる。履歴取っておいた方が便利そう。