Previous: Invoking infokey, Up: Custom Key Bindings


12.2 infokeyのソースの書式

infokeyで読み込まれるソースファイルの書式は,例で説明するのが 最も簡単です.例えば,vilessの愛好者に適しているサ ンプルの.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のみの単独行で示されています.これがソースファイルの最初のセ クションの場合,#info行は省略可能です.このセクションの残りは,以 下の形式の行から成り立っています.
          string whitespace action [ whitespace [ # comment ] ] newline

空白は,一つ以上のスペースそして/またはタブです.コメントは,改行以外の 文字列です.stringは動作を呼び出すキーの順序です.string内の 文字は,そのまま解釈されるか,コントロール文字を示すキャレット(^) が前置されているものとして解釈されます.特定の文字が続いているバックスラッ シュは,以下のキーストロークを指定します.

\b
バックスペース
\e
エスケープ(ESC)
\n
改行
\r
リターン
\t
タブ
\ku
上矢印
\kd
下矢印
\kl
左矢印
\kr
右矢印
\kU
Page Up
\kD
Page Down
\kh
HOME
\ke
END
\kx
Delete (DEL)
\mx
Meta-xで,xは上で記述されている文字.

それ以外の文字が続いているバックスラッシュは,その文字そのものを示します. バックスラッシュを前置する必要がある文字には,キャレット,スペース,タブ, そしてバックスラッシュ自身が含まれます.

#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ファイルでキーバインドを定義する順番は重要ではありません.