Emacs以外のエディタやページャを選択していて,`--vi-keys'オプション (@xref{--vi-keys})で完全には満足しない人々のために,GNU Infoはこのドキュ メントで記述されているものとは異なるキーバインドの定義と変数の設定を行な う方法を提供しています.
開始時に,GNU Infoは呼び出しを行なっている人の`HOME'ディレクトリで
`.info'(7)変数が定
義されていない場合,Infoは現在のディレクトリでも探します.}と呼ばれるファ
イルを探します.存在する場合で,Infoのコンフィグレーションデータが含まれ
ていて,現在のバージョンのinfokey
コマンドで作成されている場合,
Infoはキーバインドと変数の設定としてそこにあるものを適用します.
`.info'は効率をあげるため,そしてその設計をGNU Lessプログラムから大
量に持ってきているため,同じようにコンパクトな,テキストではないデータを
含んでいます.それは,infokey
コマンドを使用して,テキストのソース
ファイルをコンパイルして作成する必要があります.
@command{infokey}は,Infoのカスタマイズ方法を含んでいるソースファイル(デ フォルトは`$HOME/.infokey'(8)が定義されていない場合は, カレントディレクトリで探します.})を,バイナリフォーマット(デフォルトは `$HOME/.info')にコンパイルします.デフォルトのキーバインドと変数定 義に優先させるため,GNU Infoは開始時にバイナリファイルを読み込みます.構 文は以下のとおりです.
infokey [option...] [input-file]
標準的な@option{--help}と@option{--version}以外では,唯一のオプションと して@option{--output file}があります.これで@command{infokey}にバ イナリデータを書き込む`$HOME/.info'の代わりのfileを伝えます.
@command{infokey}で読み込まれるソースファイルの書式は,例で説明するのが 最も簡単です.例えば,@command{vi}や@command{less}の愛好者に適しているサ ンプルの`.infokey'のソースファイルは以下のようになります.
#info j next-line k prev-line l forward-char h backward-char \kd next-line \ku prev-line \kr forward-char \kl backward-char \ scroll-forward \kD scroll-forward-page-only b scroll-backward \kU scroll-backward-page-only g beginning-of-node \kh beginning-of-node G end-of-node \ke end-of-node \t select-reference-this-line - history-node n next-node p prev-node u up-node t top-node d dir-node #var scroll-step=1
ソースファイルは一つ以上のセクション(sections)から成り立ちます.そ れぞれのセクションはセクションの形式を識別する行で開始します.利用可能な セクションは以下のとおりです.
#info
#info
のみの単独行で示されています.これがソースファイルの最初のセ
クションの場合,#info
行は省略可能です.このセクションの残りは,以
下の形式の行から成り立っています.
string whitespace action [ whitespace [ # comment ] ] newline空白は,一つ以上のスペースそして/またはタブです.コメントは,改行以外の 文字列です.stringは動作を呼び出すキーの順序です.string内の 文字は,そのまま解釈されるか,コントロール文字を示すキャレット(
^
)
が前置されているものとして解釈されます.特定の文字が続いているバックスラッ
シュは,以下のキーストロークを指定します.
\b
\e
\n
\r
\t
\ku
\kd
\kl
\kr
\kU
\kD
\kh
\ke
\kx
\mx
#echo-area
#echo-area
のみの単独行で示されます.このセクションの残りには,上
で記述したInfoエリアに対するキーの定義と同一の構文があります.
#var
#var
のみの単独行で示さ
れます.これに続く行は,一行ごとに値を割り当てるリストです.それぞれの行
は,変数名(see section 変数の操作),それに続く=
,それに続く値から成り
立ちます.変数名と=
の間の空白は書かなくてもよく,=
に続くす
べての文字列は,空白を含めて値に含まれます.
空白行と#
で始まる行は,特殊なセクションヘッダ行以外は無視されます.
`.info'ファイルで定義されたキーバインドは,GNU Infoのデフォルトに優
先され,それは`--vi-keys'が使用されているかどうかによりません.デフォ
ルトのキーバインドは,アクションinvalid
を用いている`.info'ファ
イルで優先することで利用不可能にしてもかまいません.さらに,すべて
のデフォルトのキーバインドは,関連するセクションのどこかに以下の
行を追加することで,利用不可能にすることができます.
#stop
これでGNU Infoは,そのセクションに対するすべてのデフォルトキーコマンドを 無視します.
注意:#stop
は危険です.それはすべてのデフォルトのキーバインドを利
用不可能にするので,必要なすべての動作を利用可能にするために,新しいキー
バインドを十分に提供する必要があります.例えば,quit
コマンドのキー
バインドに失敗するとどうにもなりません.
get-help-window
コマンドで生成されるコマンドの概要が,それぞれのコ
マンドに割り当てられている最初のキーしか表示しないこと以外,
`.info'ファイルでキーバインドを定義する順番は重要ではありません.
Go to the first, previous, next, last section, table of contents.