howmからnamazuを使いやすく

2008年 11月 22日

howmを仕事のポータルサイトのような使い方をしてメモや資料へアクセスしていると、大量な資料からの検索もやりたくなってくる。資料の検索には検索インデックスを作るのがいいだろうとnamazuを導入して、Meadowから検索するのはいいのだが、やはりhowmからhowmらしく検索したいと思ったのでやってみた。

たとえばこんな感じ。

howm

howmのメモに検索用のメモページを作っておき、namazuのインデックスディレクトリへのリンクを書いておく。普通のリンクではなく、action-lockを使用して、>>> NMZ ほげほげ とか書いておくとそれがインデックスディレクトリを指している。

howm2

リンクの上でリターンキーを押すことで、上の画像のように選択されたリンクのインデックスを使用して、ミニバッファへ検索キーワードの入力が求められる。検索キーワードを入力してリターン。

howm3

するとバッファにnamazuの検索結果が表示されるわけだ。

これ、namazu.elを必要とするが、あとは.emacsにちょっと書いてあげるだけで実現できる。インデックスも文書の内容に合わせて複数作成して使い分けるといい感じだ。もちろん検索結果はリターンするとwordやexcelやacrobatなどが起動して文書を表示する。(これはnamazu.el側がやってくれる)

namazu.elをemacs lispパスの通ったところへ配置して.emacsへ以下の記述をしたら完了。

(require ‘namazu)
(defun do-namazu (&optional namazu-dir)
(setq key
(read-from-minibuffer “Enter Keyword: ” nil
namazu-minibuffer-field-map nil ‘namazu-keyword-history))
(setq page-num 0)
(namazu page-num namazu-dir key)
)
;;howmでnamazu実行
(setq action-lock-default-rules
(cons
(action-lock-general
‘do-namazu
“^>>> NMZ \\(.+\\)”
1 0)
action-lock-default-rules))

自分のhowmではディレクトリリンクをエクスプローラで開くなどのaction-lockを定義しているので、さまざまなディレクトリへのリンク、wordやexcelへのリンクなどもトップページに書いている。さらにこれで目的に応じたインデックス毎のnamazu検索実行などもhowmリンクにできることになる。