/usr/bin/bash: Difference between revisions
Line 1,342: | Line 1,342: | ||
=== Readline Key Bindings === | === Readline Key Bindings === | ||
inputrcファイルでキーバインドを制御する構文は簡単である。 必要なのは、コマンド名またはマクロのテキストと、それをバインドするキー配列だけである。 | |||
名前は2つの方法で指定できる。1つはシンボリックなキー名で、Meta-またはControl-という接頭辞をつけることもできるし、もう1つはキー配列である。 | |||
keyname:function-nameまたはmacroという形式を使う場合、keynameは英語で綴られたキーの名前である。 例えば: | |||
<code> | |||
Control-u: universal-argument | Control-u: universal-argument | ||
Meta-Rubout: backward-kill-word | Meta-Rubout: backward-kill-word | ||
Control-o: "> output" | Control-o: "> output" | ||
</code> | |||
上記の例では、C-uは関数universal-argumentに、M-DELは関数backward-kill-wordに、C-oは右辺で表現されたマクロを実行する(つまり、テキスト``> output''を行に挿入する)ためにバインドされている。 | |||
2番目の形式である "keyseq":function-nameまたはmacroでは、keyseqは上記のkeynameとは異なり、キーシーケンス全体を表す文字列を二重引用符で囲んで指定することができる。 以下の例のように、GNU Emacsスタイルのキーエスケープを使うことができるが、記号文字名は認識されない。 | |||
<code> | |||
"\C-u": universal-argument | "\C-u": universal-argument | ||
"\C-x\C-r": re-read-init-file | "\C-x\C-r": re-read-init-file | ||
"\e[11~": "Function Key 1" | "\e[11~": "Function Key 1" | ||
</code> | |||
この例では、C-uは再び関数universal-argumentにバインドされている。 C-x C-rは関数re-read-init-fileに束縛され、<nowiki>ESC [ 1 1 ~</nowiki>はテキスト``Function Key 1''を挿入するために束縛される。 | |||
GNU Emacsスタイルのエスケープシーケンス一式は以下の通りである。 | |||
<code> | |||
\C- control prefix | \C- control prefix | ||
\M- meta prefix | \M- meta prefix | ||
Line 1,377: | Line 1,373: | ||
\" literal " | \" literal " | ||
\' literal ' | \' literal ' | ||
</code> | |||
GNU Emacsスタイルのエスケープシーケンスに加えて、2つ目のバックスラッシュエスケープのセットが利用できる: | |||
<code> | |||
\a alert (bell) | \a alert (bell) | ||
\b backspace | \b backspace | ||
Line 1,389: | Line 1,386: | ||
\v vertical tab | \v vertical tab | ||
\nnn the eight-bit character whose value is the octal value nnn (one to three digits) | \nnn the eight-bit character whose value is the octal value nnn (one to three digits) | ||
\xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex | \xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) | ||
</code> | |||
マクロのテキストを入力する際には、マクロ定義を示すために一重引用符または二重引用符を使用しなければならない。 引用符で囲まれていないテキストは関数名とみなされる。 マクロ本文では、前述のバックスラッシュエスケープが展開される。 バックスラッシュは、" や ' を含め、マクロテキスト内の他の文字を引用符で囲む。 | |||
Bashでは、bind組み込みコマンドを使用して、現在のreadlineキーバインディングを表示または変更できる。 編集モードは、set builtinコマンドの-oオプションを使用することで、インタラクティブな使用中に切り替えることができる(後述の「[[#SHELL BUILTIN COMMANDS|SHELL BUILTIN COMMANDS ]]」を参照)。 | |||
=== Readline Variables === | === Readline Variables === |