Readline初期化ファイルの中では、 ほんの少数の基本的な構文だけが使用できます。 空行は無視されます。 `#'で始まる行はコメントです。 `$'で始まる行は、 条件構文を表わします (see Conditional Init Constructs)。 その他の行は、 変数設定とキー・バインディングを示します。
setコマンドを使用してReadlineの変数の値を変更することによって、
Readlineの実行時の振る舞いを変更することができます。
デフォルトのEmacsスタイルのキー・バインディングを変更して、
viの行編集コマンドを使用できるようにするには、
以下のようにします。
set editing-mode vi
以下の変数によって、 実行時の振る舞いのかなりの部分が変更可能です。
bell-stylecomment-begininsert-commentコマンドが実行されたときに、
行の先頭に挿入される文字列です。
デフォルトの値は"#"です。
completion-ignore-casecompletion-query-items100です。
convert-metadisable-completionself-insertにマップされたかのように、
行内に挿入されます。
デフォルトは`off'です。
editing-modeediting-mode変数は、
デフォルトで使用するキー・バインディングの種類を制御します。
Readlineは、
デフォルトの状態では、
Emacs編集モードで起動します。
このモードは、
キー・ストロークがEmacsに非常に良く似ています。
この変数は、
emacsとviのどちらかに設定することができます。
enable-keypadexpand-tildehorizontal-scroll-modekeymapkeymap名は、
emacs、
emacs-standard、
emacs-meta、
emacs-ctlx、
vi、
vi-command、
vi-insertです。
viはvi-commandと同等です。
また、
emacsはemacs-standardと同等です。
デフォルトの値は、
emacsです。
editing-mode変数の値も、
デフォルトのキーマップに影響を及ぼします。
mark-directoriesmark-modified-linesinput-metameta-flagは、
この変数の別名です。
output-metaprint-completions-horizontallyshow-all-if-ambiguousvisible-statsコマンドの名前を知っていれば、 初期化ファイルの中で、 コマンドにバインドしたいキーの名前、 コロン、 そして最後にコマンドの名前を、 1行にして記述するだけです。 キーの名前は、 好みに応じて異なる方法で表現することができます。
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"
上の例では、
<C-u>が関数universal-argumentにバインドされ、
<C-o>がその右側に記述されたマクロ
(行内に`> output'というテキストを挿入するマクロ)
を実行するようバインドされます。
"\C-u": universal-argument
"\C-x\C-r": re-read-init-file
"\e[11~": "Function Key 1"
上の例では、
<C-u>が
(最初の例と同様)
関数universal-argumentに、
`<C-x> <C-r>'が関数re-read-init-fileに、
`<ESC> <[> <1> <1> <~>'が`Function Key 1'というテキストを挿入するよう、
それぞれバインドされています。
キー・シーケンスを指定する際には、 以下のGNU Emacsスタイルのエスケープ・シーケンスが利用できます。
GNU Emacsスタイルのエスケープ・シーケンスに加えて、 別のバックスラッシュ・エスケープ群が利用できます。
\a\b\d\f\n\r\t\v\nnn\xnnnマクロのテキストを入力する際には、 マクロ定義であることを示すために、 単一引用符または二重引用符を使わなければなりません。 引用符に囲まれないテキストは、 関数名であると見なされます。 マクロ本体においては、 上記のバックスラッシュ・エスケープは展開されます。 バックスラッシュとそれに続く文字の組み合わせがバックスラッシュ・エスケープに該当しない場合、 マクロのテキストの中のバックスラッシュは、 `"'や`''も含めて、 直後にある文字を引用します。 例えば、 以下のバインディングによって、 `C-x \'は、 行内に`\'を1つ挿入することになります。
"\C-x\\": "\\"