ibuffer 上で disearch.el と同様の機能を提供するプログラム。バッファメニューから、手早くバッファを選択できる。ibuffer には、ibuffer-jump-to-buffer という、バッファ名にカーソルを移動させるコマンドがあって、入力の補完もできる。一方、bisearch.el はインクリメンタル検索でバッファ名にカーソル移動する。Emacs には、iswitchb, iswitchb-fc といった優れたツールがあって、インクリメンタル検索で他のバッファに切り替えることが可能だし、Emacs22 からは、isearchb という Emacs Lisp も付属するようになった。さらに、migemo と組み合わせれば、ファイル名に日本語を含んでいても検索することができる。実際、これらのツールを利用した方が効果的な場合が多いと思う。しかし、ibuffer から選択するようなときには、bisearch.el も結構便利に使っている。
インストールと設定
load-path の通ったディレクトリに bisearch.el をコピーして、.emacs に以下の設定を追加して下さい。
(require 'bisearch)
ibuffer で、"i" を押すと bisearch が起動します。disearch.el のコードをほぼそのまま流用しているので、操作方法も共通しています。
キー定義
※印は、コマンド実行と共に bisearch を終了します。
"/" と f1 は、describe-key-briefly ライクなヘルプです。undefined なキー入力の場合、bisearch を終了します。
バインド | コマンド名 | 説明 |
---|---|---|
backspace | bisearch-previous-match | 後方にマッチする文字列を検索する |
delete | bisearch-yank-char | ポイント位置の1文字を検索文字列に追加する |
return | bisearch-visit-buffer | ibuffer-visit-buffer ※ |
tab | bisearch-reverse-direction | 検索方向を転換する |
\C-b | bisearch-delete-char | 検索文字列を末尾から1個取り除く |
\C-d | bisearch-yank-char | ポイント位置の1文字を検索文字列に追加する |
\C-w | bisearch-yank-word | ポイント位置の単語を検索文字列に追加する |
\C-m | bisearch-visit-buffer | ibuffer-visit-buffer ※ |
\C-j | bisearch-visit-buffer | ibuffer-visit-buffer ※ |
\C-o | bisearch-visit-buffer-other-window-noselect | ibuffer-visit-buffer-other-window-noselect ※ |
\M-o | bisearch-visit-buffer-other-window | ibuffer-visit-buffer-other-window ※ |
\C-f | bisearch-visit-buffer | ibuffer-visit-buffer ※ |
\C-h | bisearch-dec | isearch の C-h のような動作 |
127 | bisearch-dec | isearch の C-h のような動作 |
\M-h | bisearch-kill-sequence | 検索文字列を初期化する |
\C-i | bisearch-reverse-direction | 検索方向を転換する |
SPC | bisearch-next-match | 前方にマッチする文字列を検索する |
\C-n | bisearch-next-match | 前方にマッチする文字列を検索する |
\C-p | bisearch-previous-match | 後方にマッチする文字列を検索する |
\C-l | bisearch-recenter | recenter |
\C-@ | bisearch-star | * から始まるバッファ名を検索する |
C-SPC | bisearch-star | * から始まるバッファ名を検索する |
/ | bisearch-describe-key-briefly | describe-key-briefly ライクなヘルプ |
f1 | bisearch-describe-key-briefly | describe-key-briefly ライクなヘルプ |
\e | bisearch-exit | disearch を終了する |
escape | bisearch-exit | disearch を終了する |
alphabetなど | bisearch-inc | インクリメンタル検索する |
その他 | bisearch-exit | disearch を終了する |
カスタマイズ
3つのカスタマイズ変数があり、それぞれ下の表の通りです。
変数 | 説明 | 値 |
---|---|---|
bisearch-invoke-key | 起動キーを設定するための変数 | "i" |
bisearch-command-key-alist-user | キーカスタマイズ用の変数 | nil |
bisearch-column | 起動時のポイントのカラム位置を制御する変数 | 4 |
bisearch-invoke-key と bisearch-command-key-alist-user は、disearch.el と同様の設定方法です。
ibuffer は、様々なカスタマイズが可能なバッファメニューですが、十分把握していません。バッファ名が表示されるカラム位置を変更している場合には、bisearch-column で設定して下さい。ibuffer の側で動的に変更可能だったかも知れないので、その場合には、現在の bisearch では、対応できないと思います。しかし、少くともカラム位置が固定である限りは、この変数で設定できます。