Next: Conditional Init Constructs, Up: Readline Init File
Readline初期化ファイルの中では、 ほんの少数の基本的な構文だけが使用できます。 空行は無視されます。 ‘#’で始まる行はコメントです。 ‘$’で始まる行は、 条件構文を表わします (see Conditional Init Constructs)。 その他の行は、 変数設定とキー・バインディングを示します。
set
コマンドを使用してReadlineの変数の値を変更することによって、
Readlineの実行時の振る舞いを変更することができます。
デフォルトのEmacsスタイルのキー・バインディングを変更して、
vi
の行編集コマンドを使用できるようにするには、
以下のようにします。
set editing-mode vi
以下の変数によって、 実行時の振る舞いのかなりの部分が変更可能です。
bell-style
comment-begin
insert-comment
コマンドが実行されたときに、
行の先頭に挿入される文字列です。
デフォルトの値は"#"
です。
completion-ignore-case
completion-query-items
100
です。
convert-meta
disable-completion
self-insert
にマップされたかのように、
行内に挿入されます。
デフォルトは‘off’です。
editing-mode
editing-mode
変数は、
デフォルトで使用するキー・バインディングの種類を制御します。
Readlineは、
デフォルトの状態では、
Emacs編集モードで起動します。
このモードは、
キー・ストロークがEmacsに非常に良く似ています。
この変数は、
emacs
とvi
のどちらかに設定することができます。
enable-keypad
expand-tilde
horizontal-scroll-mode
keymap
keymap
名は、
emacs
、
emacs-standard
、
emacs-meta
、
emacs-ctlx
、
vi
、
vi-command
、
vi-insert
です。
vi
はvi-command
と同等です。
また、
emacs
はemacs-standard
と同等です。
デフォルトの値は、
emacs
です。
editing-mode
変数の値も、
デフォルトのキーマップに影響を及ぼします。
mark-directories
mark-modified-lines
input-meta
meta-flag
は、
この変数の別名です。
output-meta
print-completions-horizontally
show-all-if-ambiguous
visible-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\x
nnnマクロのテキストを入力する際には、 マクロ定義であることを示すために、 単一引用符または二重引用符を使わなければなりません。 引用符に囲まれないテキストは、 関数名であると見なされます。 マクロ本体においては、 上記のバックスラッシュ・エスケープは展開されます。 バックスラッシュとそれに続く文字の組み合わせがバックスラッシュ・エスケープに該当しない場合、 マクロのテキストの中のバックスラッシュは、 ‘"’や‘'’も含めて、 直後にある文字を引用します。 例えば、 以下のバインディングによって、 ‘C-x \’は、 行内に‘\’を1つ挿入することになります。
"\C-x\\": "\\"