Go to the first, previous, next, last section, table of contents.


キーバインドと変数のカスタマイズ

Emacs以外のエディタやページャを選択していて,`--vi-keys'オプション (@xref{--vi-keys})で完全には満足しない人々のために,GNU Infoはこのドキュ メントで記述されているものとは異なるキーバインドの定義と変数の設定を行な う方法を提供しています.

開始時に,GNU Infoは呼び出しを行なっている人の`HOME'ディレクトリで `.info'(7)変数が定 義されていない場合,Infoは現在のディレクトリでも探します.}と呼ばれるファ イルを探します.存在する場合で,Infoのコンフィグレーションデータが含まれ ていて,現在のバージョンのinfokeyコマンドで作成されている場合, Infoはキーバインドと変数の設定としてそこにあるものを適用します.

`.info'は効率をあげるため,そしてその設計をGNU Lessプログラムから大 量に持ってきているため,同じようにコンパクトな,テキストではないデータを 含んでいます.それは,infokeyコマンドを使用して,テキストのソース ファイルをコンパイルして作成する必要があります.

@command{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{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のみの単独行で示されています.これがソースファイルの最初のセ クションの場合,#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 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.