Readlineは、 Cのプリプロセッサにおける条件コンパイル機能と質的に類似した機能を実装しています。 これによって、 あるテストの結果に応じてキー・バインディングや変数設定が実行されるようにすることができます。 4種類のパーサ指示子が使われます。
$if
$if
は、
編集モード、
使用されている端末、
あるいは、
Readlineを使用しているアプリケーションに応じてバインディングが行われるようにすることを可能にします。
$if
の後ろに、
テストされる内容が行末まで続きます。
テストされる内容をほかのものと分離するために特別に文字を使う必要はありません。
mode
emacs
モードとvi
モードのどちらで動作しているかをテストするために、
$if
指示子の一形式であるmode=
が使用されます。
例えば、
Readlineがemacs
モードで開始されている場合にのみ、
emacs-standard
やemacs-ctlx
のキーマップでバインディングをセットするようにするために、
これを‘set keymap’コマンドと組み合わせて使用することができます。
term
term=
という形式は、
端末のファンクション・キーによって特定のキー・シーケンスが出力されるようなバインディングを行うなどの目的で、
端末固有のキー・バインディングを組み込むために使用することができます。
‘=’の右側の単語は、
端末の完全名と、
端末の名前のうち最初の‘-’までの部分の両方に対してテストされます。
これにより、
例えばsun
は、
sun
とsun-cmd
の両方にマッチすることになります。
application
$if Bash # カレントな単語、または、1つ前の単語を引用符で囲む "\C-xq": "\eb\"\ef\"" $endif
$endif
$if
コマンドを終わらせます。
$else
$if
指示子から枝分かれしたこの部分に記述されたコマンドは、
テスト結果が偽であった場合に実行されます。
$include
$include /etc/inputrc