infokeyで読み込まれるソースファイルの書式は,例で説明するのが 最も簡単です.例えば,viや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 Variables),それに続く=,それに続く値から成り
立ちます.変数名と=の間の空白は書かなくてもよく,=に続くす
べての文字列は,空白を含めて値に含まれます.
空白行と#で始まる行は,特殊なセクションヘッダ行以外は無視されます.
.infoファイルで定義されたキーバインドは,GNU Infoのデフォルトに優
先され,それは`--vi-keys'が使用されているかどうかによりません.デフォ
ルトのキーバインドは,アクションinvalidを用いている.infoファ
イルで優先することで利用不可能にしてもかまいません.さらに,すべて
のデフォルトのキーバインドは,関連するセクションのどこかに以下の
行を追加することで,利用不可能にすることができます.
#stop
これでGNU Infoは,そのセクションに対するすべてのデフォルトキーコマンドを 無視します.
注意:#stopは危険です.それはすべてのデフォルトのキーバインドを利
用不可能にするので,必要なすべての動作を利用可能にするために,新しいキー
バインドを十分に提供する必要があります.例えば,quitコマンドのキー
バインドに失敗するとどうにもなりません.
get-help-windowコマンドで生成されるコマンドの概要が,それぞれのコ
マンドに割り当てられている最初のキーしか表示しないこと以外,
.infoファイルでキーバインドを定義する順番は重要ではありません.