Emacs-Lisp pbook.el pathをブックマークしておくマイナーモード

■なんで作ったか
bookmark.elはかなり好きなのですが、ブックマークしたのがディレクトリでも開きたいのはそのディレクトリ内のファイルなんだよねというときに一度diredになってしまうのがなんとなく嫌です。

■何ができるか
操作が単純
登録したパスを正規表現の部分一致で呼び出せる
diredを開かずにファイルを開けます

■インストール
ロードパスの通ったところにpbook.elファイルを置きます。
.emacsに以下を追加します

  1. (require 'pbook)
  2. (define-key global-map "\C-c\C-b" 'pbook::book)
  3. (define-key global-map "\C-c\C-r" 'pbook::read)

キーバインドは適宜変えてください。
pbook::bookが今開いているバッファのパスを登録する関数
pbook::readが登録済みのパスを呼び出してファイル呼び出しにつなげる関数です

■使い方
1.パスを登録する場合

  1. C-c C-b

で、今開いているバッファのパスが登録されます

2.登録したパスを呼び出す場合

  1. C-c C-r

apropos ? と訊かれますので、呼び出したいパスに含まれるだろう文字、または正規表現を入れます
登録済みのパスの中で部分一致した候補が新しいバッファに表示されます。
表示された候補の上でエンターするとminibufferに反映されます、が、今のところ2回エンターしないといけないです。
minibufferに続けて文字を入力、エンター、で候補を選び直すこともできます。こっちの方がいまのところ便利だと思います。
候補が1つしかないときは素直にC-c C-f にデフォルト値が入った状態になります
そこからの補完はいつものC-c C-fと同じです

■感想
ただのC-c C-fよりはちょっと便利

■今後
先頭からの一致ではいまいち不便なので、部分一致するようにします。
2009/02/19 version2で対応しました。が、いまひとつ。
2009/02/20 version3 ちょっとましになった。候補選択用のバッファで2回エンターしないとnimibufferに反映されない。
②ディレクトリしか登録できないですが、bookmark.elみたいにファイルも登録できるようにしたら便利かもしれない。
③一度ブックマーク登録したパスを編集する機能はありません。$HOME/.pbookに書かれていますので、直接編集しちゃってください。
 一応存在しないパスが書かれていても候補から除外するようにしてはいます