vim使いの為のinfo設定

infoって、--vi-keysオプションで起動しても、なんかviっぽいキーアサインじゃないですよね?
なんで、vimっぽくしてみました。
infoは普通は~/.infokeyに設定を書き、infokeyコマンドを実行して~/.infoファイルを作成します。.infokeyを書いただけじゃ反映されないのでちょっと注意。


で、僕の書いた設定。

#info
j		next-line	#下
k		prev-line	#上
^f		scroll-forward-page-only	#下スクロール
^b		scroll-backward-page-only	#上スクロール
l		forward-char	#右
h		backward-char	#左
g		beginning-of-node	#ページ頭
G		end-of-node			#ページ最後
\n		select-reference-this-line	#カーソル下のリンクへ飛ぶ
^]		select-reference-this-line	#カーソル下のリンクへ飛ぶ
-		history-node	#前にいたノードに戻る
^t		history-node	#前にいたノードに戻る
^n		next-node	#同階層の次のノードへ飛ぶ
^p		prev-node	#同階層の前のノードへ飛ぶ
]		global-next-node	#サブ階層も含め、次のノードへ飛ぶ
[		global-prev-node	#サブ階層も含め、前のノードへ飛ぶ
u		up-node		#一つ上のノードへ飛ぶ
t		top-node	#一番上のノードへ飛ぶ
d		dir-node	#ディレクトリノードへ飛ぶ
/		search	#ノード内順方向検索
?		search-backward #ノード内逆方向検索
n		search-next		#検索で、次の候補
N		search-previous	#検索で、前の候補
\t		move-to-next-xref	#次のリンクへ
\e\t	move-to-prev-xref	#前のリンクへ
H		get-help-window		#ヘルプ
^w^w	next-window		#次のウィンドウへ
^wc	delete-window		#現在のウィンドウを閉じる
^w^c	delete-window		#現在のウィンドウを閉じる(なぜか上手く設定されず、infoが終了する)
^w^s	split-window	#ウィンドウを分割する
^c		abort-key		#キャンセルキー(なぜか上手く設定されず、infoが終了する)

#var
scroll-step=1	#スクロールは一行ずつ
scroll-behavior=Page Only	#上/下とかで次/前ノードに飛ばない

書式のマニュアルは http://www.gnu.org/software/texinfo/manual/info-stnd/html_node/Custom-Key-Bindings.html#Custom-Key-Bindings を参考に。
設定セクションがあり、#infoと書いたセクションでキーアサイン、#varと書いたセクションでinfoの挙動変更変数の設定を行ないます。他にも#echo-areaとかあるんだけど、今回は使わないんでパス。
変数一覧は http://www.gnu.org/s/texinfo/manual/info/info-stnd.html#Variables あたりを参考に。

よくわからないのが、CTRL-Cが絡んだ設定が上手くいかない事。
CTRL-Cを入力するとinfoが終了しちゃうんで、abort-keyとしても塗り潰せない。また、^w^c(CTRL-W CTRL-C)も、CTRL-Cの終了が効いちゃうみたいで、delete-windowが呼ばれず、終了しちゃう。
あとでちょっと追ってみるかな。

vim内でinfoを使う為のinfo pluginもあります。ただ、これは渡り歩いたページが全て開かれたり、修正フラグが立った状態になってたりとかで、ちょっと使い辛い所もあります。なんで、僕はtmuxで、vimとinfoを切り替えて使ってます。