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を切り替えて使ってます。