EN JA
READLINE(3)
READLINE(3) FreeBSD Library Functions Manual READLINE(3)

名称

readline -ユーザから編集機能付きで一行を取得する

書式


#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>


char *

 


readline ( const char *prompt);

COPYRIGHT

Readline is Copyright (C) 1989-2004 by the Free Software Foundation, Inc.

解説

readline は、プロンプトとして prompt を使用して、端末から一行を読み込み、それを返します。 promptNULL または空文字列であるなら、プロンプトは、出されません。返された行は、 malloc(3) で割り付けられます。呼び出し側は、終了したとき、それを解放しなければなりません。返される行は、最終の改行を削除するので、行のテキストだけが残ります。

readline は、ユーザが行を入力している間に編集能力を提供します。デフォルトで、行編集コマンドは、emacs のものに似ています。 vi-スタイルの行編集インタフェースも利用可能です。

このマニュアルページは、 readline の最も基本的な使用法だけを説明しています。はるかに多くの機能が利用可能です。追加の情報に関しては、 The GNU Readline LibraryThe GNU History Library を参照してください。

戻り値

readline は、読み込んだ行のテキストを返します。空行は、空の文字列を返します。行を読み込んでいる間に EOF に遭遇し、行が空であるなら、 NULL が返されます。 EOF が空でない行で読み込まれたなら、それは、改行として扱われます。

表記法

emacs-スタイルの表記法は、キーストロークを表示するために使用されます。コントロールキーは、C- key によって表示されます。例えば、C-n は、Control-N (コントロール-N) を意味します。同様に、 meta キーは、M- key によって表示されるので、M-x は、Meta-X (メタ-X) を意味します。 ( meta キーのないキーボードで、M- x は、ESC x を意味します。すなわち、エスケープキーを押して、次に x キーを押します。これは、ESC を メタ接頭辞とします。 M-C- x の組み合わせは、ESC-Control- x を意味するか、またはエスケープキーを押して、次に x キーを押している間コントロールキーを押したままにします。)

readline コマンドは、通常繰り返し回数の役割をする数値 引数 を与えることができます。しかしながら、時々、引数の符号は、重要です。順方向に作用するコマンド (例えば、 kill-line) に負の引数を渡すと、コマンドは、逆方向に作用します。これから外れる引数がある作用のコマンドは、注意されます。

コマンドが削除 ( killing) テキストと記述されるとき、削除されたテキストは、将来の取り出す (ヤンク yanking) 可能性のために保存されます。削除されたテキストは、キル (削除) リング ( kill ring) に保存されます。連続する削除によって、テキストは、一度にすべてをヤンクできる 1 つのユニットの中に蓄積されます。テキストを削除しないコマンドは、削除リングでテキストの塊を分離します。

初期化ファイル

readline は、初期化ファイル ( inputrc ファイル) 中のプット (putting) コマンドによってカスタマイズされます。このファイルの名前は、 INPUTRC 環境変数の値から得られます。その変数が設定されていない場合、デフォルトは、 ~/.inputrc です。そのファイルが存在しないか、または読み込むことができないなら、最終的なデフォルトは、 /etc/inputrc です。 readline ライブラリを使用するプログラムが起動する時、初期化ファイルが読み込まれてキーバインディングと変数が設定されます。 readline 初期化ファイルで許可されているほんのわずかの基本的構文があります。空白行は、無視されます。 # で始まる行は、コメントです。 $ で始まる行は、条件付き構文を示します。他の行は、キーバインディングと変数設定を示します。このライブラリを使用する各プログラムは、それ自身のコマンドとバインディングを追加できます。

例えば、

M-Control-u: universal-argument (一般的引数)

または

C-Meta-u: universal-argument (一般的引数)
 

inputrc に入れることは、M-C-u で readline コマンド universal-argument が実行されます。

次のシンボリック文字名がキーバインディングを処理する間に認識されます。 DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, TAB

コマンド名に加えて、readline は、キーが押される時に挿入される文字列にキーを結び付ける (バインドする) ことを可能にします ( マクロ)。

キーバインディング

inputrc ファイル中のキーバインディングを制御するための文法は、単純です。要求されるのは、コマンドの名前またはそれが結び付けられる (バインドされる) べきマクロとキーシーケンスのテキストです。名前は、2 つの方法のうちの 1 つで指定できます: おそらく Meta- または Control- 接頭辞が付く、シンボリックキーの名前、またはキーシーケンスです。名前とキーのシーケンスは、コロンによって分離されます。名前とコロンの間に空白類があってはなりません。

keyname: function-name または keyname: macro 形式を使用する場合、 keyname は、英語で綴られたキーの名前です。例えば、

 
Control-u: universal-argument
 
Meta-Rubout: backward-kill-word
 
Control-o: "> output"

上記の例では、 C-u は、関数 universal-argument に結び付けられ (バインドされ)、 M-DEL は、関数 backward-kill-word に結び付けられ、 C-o は、右辺のマクロ表現 (すなわち、テキストを挿入するために、 ``> output'' は、行の中へ出力されます) の実行に結び付けられ (バインドされ) ます。

2 つめの "keyseq": function-name または "keyseq": macro 形式で、 keyseq は、キーシーケンス全体を表す文字列が二重引用符内に置かれたシーケンスで指定される点で上記の keyname とは異なります。次の例のように、いくつかの GNU Emacs スタイルのキーエスケープを使用できますが、シンボリック文字名は、認識されません。

 
"\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 スタイルのエスケープシーケンスの一式は、次の通りです。

\C-
コントロール接頭辞
\M-
メタ接頭辞
\e
エスケープ文字
\\
バックスラッシュ
\"
文字 "、二重引用符
\'
文字 '、一重引用符

GNU Emacs スタイルのエスケープシーケンスに加えて、次のバックスラッシュエスケープの第 2 セットも利用可能です。

\a
警告 (ベル)
\b
後退 (backspace)
\d
消去 (delete)
\f
改ページ (form feed)
\n
改行 (newline)
\r
復帰 (carriage return)
\t
水平タブ
\v
垂直タブ
\ nnn
値が 8 進数の値 nnn (1 桁から 3 桁) である 8 ビットの文字
\x HH
値が 16 進数の値 HH (1 桁から 2 桁の 16 進数) である 8 ビットの文字

マクロのテキストを入力する時、一重引用符か二重引用符は、マクロの定義を示すために使用されるべきです。引用符のないテキストは、関数名であると仮定されます。マクロの本体では、上に記述されたバックスラッシュエスケープが展開されます。バックスラッシュは、"と ' を含めてマクロテキスト中の他のどの文字もクォートします。

bash は、現在の readline のキーバインディングが bind 組み込みコマンドで表示するか修正できます。編集モードは、 set 組み込みコマンドの -o オプションを使用することにより、対話型に使用している間に切り替えることができます。このライブラリを使用する他のプログラムは、同様の仕組みを提供します。 inputrc ファイルは、プログラムが新しいバインディングを組み込むための他の手段を提供しない場合、編集して再読み込みできます。

変数

readline は、その振る舞いをさらにカスタマイズするために使用することができる変数を持っています。変数は、次の形式の文で inputrc ファイルの中で設定できます。

set variable-name value

注記したところを除いて、readline 変数は、 (大文字小文字に関係なく) OnOff の値を取ることができます。変数とそれらのデフォルト値は、次の通りです。認識されない変数名は、無視されます。変数値が読み込まれるとき、空またはヌル値、"on" (大文字と小文字の区別なし)、 "1"は、 On と同等です。他のすべての値は、 Off と同等です。

bell-style (audible)
readline が端末のベルを鳴らしたい時、何が起こるかを制御します。 none に設定される場合、readline は、ベルを鳴らしません。 visible に設定される場合、readline は、可視ベル (ビジブルベル) を使用します。 audible に設定される場合、readline は、端末のベルを鳴らそうとします。
bind-tty-special-chars (On)
On に設定されるなら、readline は、カーネルの端末のドライバによって特別に処理される制御文字をそれらの readline 同等物にバインドすることを試みます。
comment-begin (``#'')
insert-comment コマンドが実行される時、 vi モードで挿入される文字列です。このコマンドは、emacs モードでは、 M-# に結びつけられ、vi コマンドモードでは、 # に結び付けられ (バインドされ) ます。
completion-ignore-case (Off)
On に設定される場合、readline は、大文字と小文字を区別しない方法で (case-insensitive) ファイル名の照合 (マッチ) と補完を実行します。
completion-query-items (100)
これは、 possible-completions コマンドによって生成された補完候補の数を見ることについて、ユーザがいつ問い合わせるか決めます。それは、0 以上の任意の整数値を設定できます。補完候補の数がこの変数の値以上である場合、ユーザは、それらを見たいかどうか尋ねられます。そうでなければ、それらは、単に端末にリストされます。負の数によって、 readline は、決して問い合わせしません。
convert-meta (On)
On に設定される場合、readline は、 8 番目のビットがセットされた文字を、 8 番目のビットを取り去りエスケープ文字を前に置くこと (実際には、 メタ接頭辞としてエスケープを使用する) により、ASCII キーシーケンスに変換します。
disable-completion (Off)
On に設定される場合、readline は、単語の補完を抑制します。あたかもそれらが self-insert にマップされたかのように、補完文字は、行に挿入されます。
editing-mode (emacs)
readline が emacs か vi と同様の一組のキーバインディングで始まるかどうか制御します。 editing-mode は、 emacs または vi のいずれかに設定できます。
enable-keypad (Off)
On に設定される時、readline は、それが呼び出される時アプリケーションキーパッドを可能にしようとします。いくつかのシステムは、矢印キーを可能にするためにこれを必要とします。
expand-tilde (Off)
on に設定される場合、readline が単語の補完を試みる時、チルダ展開が実行されます。
history-preserve-point (Off)
on に設定されると、履歴コードは、 previous-historynext-history で取り出されたそれぞれの履歴行の同じ位置にポイントを置くように試みます。
horizontal-scroll-mode (Off)
On に設定される時、readline は、入力が画面の幅より長くなる場合、それを新しい行に折り返すのではなく画面の 1 つの行で水平に入力をスクロールする表示のための 1 つの行を使用するようにします。
input-meta (Off)
On に設定される場合、readline は、端末がそれをサポートできると主張するとしても、8 ビットの入力 (すなわち、読み込み文字から 8 番目のビットをクリアしません) を可能にします。名前 meta-flag は、この変数と同意語です。
isearch-terminators (``C-[ C-J'')
コマンドとして続く文字を実行せずに、インクリメンタルサーチを終了するべき文字列です。この変数に値が与えられていない場合、文字 ESCC-J がインクリメンタルサーチを終了します。
keymap (emacs)
現在の readline キーマップを設定します。正当なキーマップ名のセットは、 emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-commandvi-insert です。 vi は、 vi-command と同等です。 emacs は、 emacs-standard と同等です。デフォルト値は、 emacs です。 editing-mode の値は、さらにデフォルトキーマップに影響します。
mark-directories (On)
On に設定される場合、補完されたディレクトリ名は、スラッシュを追加します。
mark-modified-lines (Off)
On に設定される場合、修正された履歴行 (history line) は、前にアスタリスク ( *) を付けて表示されます。
mark-symlinked-directories (Off)
On に設定される場合、ディレクトリへのシンボリックリンクである補完した名前は、( mark-directories の値に従って) スラッシュを追加します。
match-hidden-files (On)
On に設定されるとき、この変数は、readline に先導された `.' が補完されるファイル名のユーザによって供給されないなら、ファイル名の補完を実行するとき名前が `.' (隠しファイル) で始まるファイルに一致させるようにします。
output-meta (Off)
On に設定される場合、readline は、メタ接頭辞を付けたエスケープシーケンスとしてではなく直接 8 番目のビットをセットした文字を表示します。
page-completions (On)
On に設定される場合、 readline は、一度に可能な補完を画面いっぱいに表示するために内部の more に似たページャ使用します。
print-completions-horizontally (Off)
On に設定される場合、readline は、一致した補完を画面の下方向にではなく水平方向にアルファベット順でソートして表示します。
show-all-if-ambiguous (Off)
これは、補完機能のデフォルトの振る舞いを変更します。 on に設定される場合、 2 つ以上の補完候補を持っている言葉は、一致によってベルを鳴らす代わりに直ちにリストするようになります。
show-all-if-unmodified (Off)
これは、 show-all-if-ambiguous と同様のやり方で補間機能のデフォルトの振る舞いを変更します。 on に設定されるなら、部分的な補間候補なしで 2 つ以上の補間候補がある単語によって (可能な補間は、共通の接頭辞を共有しません)、一致によってベルを鳴らす代わりに直ちにリストされます。
visible-stats (Off)
On に設定される場合、補完候補をリストする時、 stat(2) によって報告されるファイルタイプを表す文字がファイル名に付け加えられます。

条件構文

readline は、キーバインディングおよび変数設定がテストの結果として実行されることを可能にする C プリプロセッサの条件コンパイル機能に気持では、類似している機能を実装します。使用される 4 つの構文解析指令があります。
$if
$if 構文は、編集モード、使用されている端末、または readline を使用するアプリケーションに基づいてバインディングが作られることを可能にします。テストのテキストは、行の最後まで及びます。それを分離するために要求される文字はありません。
mode
$if 指令の mode= 形式は、readline が emacs モードか vi モードかどうかテストするために使用されます。これは、readline が emacs モードで始まっている場合のみ、例えば、 emacs-standard および emacs-ctlx キーマップの中でバインディングを設定するために set keymap コマンドと共に使用できます。
term
term= 形式は、たぶん端末のファンクションキーによってキーシーケンスを出力するように結び付けられる (バインドされる)、端末の特有のキーバインディングを含めるために使用できます。 = の右側の単語は、端末のフルネームと最初の - の前の端末名の部分に対してテストされます。これは、例えば sunsunsun-cmd の両方と一致することを可能にします。
application
application コンストラクト (構築) は、アプリケーションに特有の設定を含めるために使用されます。 readline ライブラリを使用する各プログラムは、 application name を設定し、初期化ファイルは、特別の値をテストできます。特定のプログラムに役立つ関数にキーシーケンスを結び付ける (バインドする) ためにこれを使用できます。例えば、次のコマンドは、bash で現在の単語か前の単語を引用するキーシーケンスを追加します。
 

$if Bash
# 現在または前の単語を引用します
"\C-xq": "\eb\"\ef\""
$endif
$endif
このコマンドは、前の例で見られるように、 $if コマンドを終了します。
$else
テストが失敗する場合、 $if 指令のこの分岐の中のコマンドが実行されます。
$include
この指令は、引数として 1 つのファイル名を取り、そのファイルからコマンドとバインディングを読み込みます。例えば、次の指令は、 /etc/inputrc を読み込みます。
 

$include /etc/inputrc

検索

readline は、指定された文字列を含んでいる行をコマンド履歴から検索するためのコマンドを提供します。 2 つの検索モードがあります。 incremental (インクリメンタル) と non-incremental (ノンインクリメンタル) です。

インクリメンタル (増分) 検索は、ユーザが検索文字列をタイプし終わる前に始まります。検索文字列の各文字がタイプされている時に、 readline は、これまでタイプされた文字列と一致する履歴から次のエントリを表示します。インクリメンタル検索は、希望の履歴エントリを見つけるために必要とされる多くの文字のみ要求します。特定の文字列のために履歴を後方に探すには、 C-r をタイプします。 C-s をタイプすると、履歴は、前方の最初まで探されます。 isearch-terminators 変数の値の中に存在している文字は、インクリメンタル検索を終了するために使用されます。その変数に値が割り当てられていない場合、 Escape (エスケープ) と C-J 文字は、インクリメンタル検索を終了します。 C-G は、インクリメンタル検索を異常終了させて、元の行を復元します。検索が終了する場合、検索文字列を含んでいる履歴エントリは、現在の行になります。

履歴リストの中の他の一致するエントリを見つけるためには、必要に応じて C-sC-r をタイプします。これは、ここまでタイプされた検索文字列と一致する次の行を履歴中で後方や前方に検索します。 readline コマンドに結び付けられた他のキーシーケンスは、検索を終了してそのコマンドを実行します。例えば、改行は、検索を終了して行を受け付け、それによって履歴リストからコマンドを実行します。移動コマンドは、検索を終了して、見つかった現在の行を最後の行にして、編集し始めます。

ノンインクリメンタル (非増分) 検索は、履歴行との一致を検索し始める前に検索文字列全体を読み込みます。検索文字列は、ユーザによってタイプすることができるか、または現在の行の内容の一部になりえます。

編集コマンド

次は、コマンド名とそれらが結び付けられているデフォルトのキーシーケンスのリストです。添付のキーシーケンスのないコマンド名は、デフォルトでは、結び付けられていません (アンバウンドされています)。

次の説明では、 point (ポイント) は、現在のカーソル位置を参照し、 mark (マーク) は、 set-mark コマンドによって保存されたカーソル位置を参照します。ポイントとマークの間のテキストは、リージョン region と呼ばれます。

移動コマンド

beginning-of-line (C-a)
現在行の先頭に移動します。
end-of-line (C-e)
行の末尾に移動します。
forward-char (C-f)
1 文字前進します。
backward-char (C-b)
1 文字後ろに移動します。
forward-word (M-f)
次の単語の末尾に前進します。単語は、英数字の文字 (文字と数字) から構成されます。
backward-word (M-b)
現在の先頭か前の単語に戻ります。単語は、英数字の文字 (文字と数字) から構成されます。
clear-screen (C-l)
画面の最上部に現在の行を残して画面をクリアします。引数があれば、画面をクリアせずに現在の行をリフレッシュします。
redraw-current-line
現在の行をリフレッシュします。

履歴を操作するためのコマンド

accept-line (Newline, Return)
カーソルがどこかにかかわらず行を受け付けます。この行が空でない場合は、それは、 add_history() で将来の再呼び出しのために履歴リストに追加されます。行が修正された履歴行である場合は、履歴行は、元の状態に復元されます。
previous-history (C-p)
リストを後ろに移動して、履歴リストから前のコマンドを取って来ます。
next-history (C-n)
リストを前進して、履歴リストから次のコマンドを取って来ます。
beginning-of-history (M-<)
履歴の最初の行へ移動します。
end-of-history (M->)
入力履歴の最後、つまり現在入力されている行に移動します。
reverse-search-history (C-r)
現在の行から始めて、必要に応じて履歴を `上' に移動して後方に検索します。これは、インクリメンタル検索です。
forward-search-history (C-s)
現在の行から始めて、必要に応じて履歴を `下' に移動して前方に検索します。これは、インクリメンタル検索です。
non-incremental-reverse-search-history (M-p)
ユーザによって供給された文字列をノンインクリメンタル捜索を使用して、現在の行から始めて履歴を後方に検索します。
non-incremental-forward-search-history (M-n)
ユーザによって供給された文字列をノンインクリメンタル捜索を使用して、履歴を前方に検索します。
history-search-forward
現在の行の先頭と現在のカーソル位置 (ポイント point) の間の文字列に対して履歴を前方に検索します。これは、ノンインクリメンタル検索です。
history-search-backward
現在の行の先頭とポイントの間の文字列に対して履歴を後方に検索します。これは、ノンインクリメンタル検索です。
yank-nth-arg (M-C-y)
ポイントに前のコマンド (通常は、前の行の 2 番目の単語) の最初の引数を挿入します。引数 n があれば、前のコマンド (前のコマンド中の単語は、単語 0 から始まります) からの n 番目の単語を挿入します。負の引数は、前のコマンドの終りから n 番目の単語を挿入します。引数 n がいったん計算されると、引数は、まるで "! n"履歴拡張が指定されたかのように、抽出されます。
yank-last-arg (M-., M-_)
前のコマンドの最後の引数 (前の履歴エントリの最後の単語) を挿入します。引数があれば、 yank-nth-arg とまったく同じように振る舞います。 yank-last-arg への連続した呼び出しは、各行の最後の引数を順番に挿入して、履歴リストを後ろに移動します。履歴拡張機能は、まるで "!$"履歴拡張が指定されたかのように最後の引数を抽出するために使用されます。

テキストを変更するためのコマンド

delete-char (C-d)
ポイントの文字を削除します。ポイントが行の先頭にあり、行には文字がなく、タイプされた最後の文字が delete-char に結び付けられていない場合、 EOF を返します。
backward-delete-char (Rubout)
カーソルの後方 (前) の文字を削除します。数値引数が与えられた時、削除されたテキストは、キルリング上に保存します。
forward-backward-delete-char
もしカーソルが行の末尾になければ、カーソルの下の文字を削除します。末尾の場合カーソルの後方 (前) の文字が削除されます。
quoted-insert (C-q, C-v)
タイプされた行をそのまま、次の文字として追加します。例えば、これは、 C-q のような文字を挿入する方法です。
tab-insert (M-TAB)
タブ文字を挿入します。
self-insert (a, b, A, 1, !, ...)
タイプされた文字を挿入します。
transpose-chars (C-t)
ポイントの文字を前方に越えてポイントの前の文字にドラックし、ポイントは、同様に前方に移動します。ポイントが行の終わりにある場合は、ポイントの前の 2 文字を置き換えます。負の引数は、働きません。
transpose-words (M-t)
ポイントの前の単語を越えたポイントの後方 (前) に単語をドラックし、同様にその単語を越えてポイントを移動させます。ポイントが行の終わりにあるなら、これは、行の最後の 2 つの単語を入れ換えます。
upcase-word (M-u)
現在の単語 (または続く単語) を大文字に変換します。負の引数があれば、前の単語を大文字に変換しますが、ポイントは、移動させません。
downcase-word (M-l)
現在の単語 (または続く単語) を小文字に変換します。負の引数があれば、前の単語を小文字に変換しますが、ポイントは、移動させません。
capitalize-word (M-c)
現在の単語 (または続く単語) の先頭を大文字に変換します。負の引数があれば、前の単語の先頭を大文字に変換しますが、ポイントは、移動させません。
overwrite-mode
上書きモードを切り替えます。明白な正の数値引数で、上書きモードを切り替えます。明白な正でない数値引数で、挿入モードを切り替えます。このコマンドは、 emacs モードだけで影響します。 vi モードは、異なっており上書きされます。 readline() への呼び出し毎に挿入モードで始まります。上書きモードでは、 self-insert に結びつけられ文字は、テキストの右に入れるよりむしろテキストのポイントを置き換えます。 backward-delete-char に結びつけられ文字は、ポイントの前の文字を空白に置き換えます。デフォルトでは、このコマンドは、結びつけられていません。

削除 (kill) とヤンク

kill-line (C-k)
ポイントから行末までのテキストを削除 (kill) します。
backward-kill-line (C-x Rubout)
行頭まで後方 (前) に削除します。
unix-line-discard (C-u)
ポイントから行頭まで後方 (前) に削除します。削除されたテキストは、キルリングに保存されます。
kill-whole-line
ポイントがどこにあっても、現在の行のすべての文字を削除します。
kill-word (M-d)
ポイントから現在の単語の終りまでを削除します。または、単語の間の場合は、次の単語の終りまでを削除します。単語境界は、 forward-word によって使用されるものと同じです。
backward-kill-word (M-Rubout)
ポイントの後ろの単語を削除します。単語境界は、 backward-word によって使用されるものと同じです。
unix-word-rubout (C-w)
単語境界として空白類を使用して、ポイントの後方 (前) の単語を削除します。削除されたテキストは、kill-ring で保存されます。
unix-filename-rubout
語境界として空白とスラッシュ文字を使用して、ポイントの後ろの単語を削除します。削除されたテキストでは、kill-ring で保存されます。
delete-horizontal-space (M-\)
ポイントのまわりの空白とタブをすべて削除します。
kill-region
ポイントと マーク (保存されたカーソル位置) の間のテキストを削除します。このテキストは、リージョン region と呼ばれます。
copy-region-as-kill
キル (削除) バッファにリージョンのテキストをコピーします。
copy-backward-word
ポイントの前の単語をキル (削除) バッファにコピーします。単語境界は、 backward-word と同じです。
copy-forward-word
ポイントに続く単語をキル (削除) バッファへコピーします。単語境界は、 forward-word と同じです。
yank (C-y)
キル (削除) リンクの最上部をポイント位置にあるバッファにヤンクします。
yank-pop (M-y)
キル (削除) リンクを回転させて、新しい最上部をヤンクします。 yankyank-pop に続く場合のみ動作します。

数値引数

digit-argument (M-0, M-1, ..., M--)
すでに蓄積している引数にこの数字を追加するか、または新しい引数を始めます。 M--は、負の引数を始めます。
universal-argument
これは、引数を指定する別の方法です。 1 つ以上の数字が、オプションで先導するマイナス記号が、このコマンドに続く場合、それらの数字は、引数を定義します。数字がコマンドに続く場合、 universal-argument の実行は、再び数値の引数を終了しますが、そうでなければ無視されます。特別の場合として、このコマンドが数字かマイナス記号のどちらでもない文字が直後に続く場合、次のコマンドのための引数の数は、4 倍になります。引数の数は、最初は、1 で、したがって最初にこの関数を実行することは、引数の数が 4 になり、2 回目は、引数の数は、16 になる、などです。

補完

complete (TAB)
ポイントの前にテキストで補完 (completion) の実行を試みます。実際の補完の実行は、アプリケーションに特有です。例えば、 bash は、順番に (テキストが $ から始まる場合) 変数、 (テキストが ~ から始まる場合) ユーザ名、 (テキストが @ から始まる場合) ホスト名または (エイリアスと関数を含む) コマンドとしてテキストを処理する補完を試みます。これらのどれも一致しない場合、ファイル名の補完が試みられます。いっぽう、 gdb は、プログラムの関数と変数の補完を可能にし、ある状況の下でのみファイル名の補完を試みます。
possible-completions (M-?)
ポイントの前のテキストの補完候補をリストします。
insert-completions (M-*)
possible-completions よって生成されたポイントの前のテキストのすべての補完を挿入します。
menu-complete
complete に似ていますが、補完候補のリストからの単一のマッチで補完された単語を置き換えます。順番に各一致を挿入する補完候補のリストのために menu-complete ステップの実行を繰り返します。補完のリストの終わりで、ベルが鳴らされ、 ( bell-style の設定に従って) 元のテキストが復元されます。引数の n は、一致リスト中で n 位置だけ前進させます。負の引数は、リストの中を後方へ移動するために使用できます。このコマンドは、 TAB に結び付けられることを目的にしていますが、デフォルトでは、結びつけられていません (アンバウンドされています)。
delete-char-or-list
( delete-char のように) 行の始めか終わりでない場合、カーソルの下の文字を削除します。行の終わりの場合、 possible-completions とまったく同じように作用します。

キーボードマクロ

start-kbd-macro (C-x ()
タイプされた文字を現在のキーボードマクロに保存し始めます。
end-kbd-macro (C-x ))
タイプされた文字を現在のキーボードマクロに保存することと定義を格納することを停止します。
call-last-kbd-macro (C-x e)
あたかもキーボードでタイプされたかのように現われるマクロ中で文字を作ることにより、定義された最後のキーボードマクロを再実行します。

その他

re-read-init-file (C-x C-r)
inputrc ファイルの内容を読み込み、そこで見つけられた任意のバインディングか変数の割り当てを組み込みます。
abort (C-g)
現在の編集コマンドを異常終了させて、端末のベルを鳴らします ( bell-style の設定に従います)。
do-uppercase-version (M-a, M-b, M- x, ...)
メタ化 (metafy) された文字 x が小文字の場合は、対応する大文字の文字に結び付けられたコマンドを実行します。
prefix-meta (ESC)
タイプされた次の文字をメタ化します。 ESC f は、 Meta-f と等価です。
undo (C-_, C-x C-u)
各行のために個別に記憶される、インクリメンタルアンドゥ (取消し) です。
revert-line (M-r)
この行で行なわれた変更をすべて取り消します。これは、初期状態の行を返すために十分な回数 undo コマンドを実行するのに似ています。
tilde-expand (M-&)
現在の単語でチルダ展開を実行します。
set-mark (C-@, M-<space>)
ポイントにマークを設定します。数値引数が指定される場合、マークは、その位置に設定されます。
exchange-point-and-mark (C-x C-x)
マークとポイントを入れ換えます。現在のカーソル位置は、保存された位置に設定され、古いカーソル位置は、マークとして保存されます。
character-search (C-])
文字は、読み込まれ、ポイントは、その文字が次に存在する場所に移動されます。負の数は、前に存在する場所を検索します。
character-search-backward (M-C-])
文字は、読み込まれ、ポイントは、その文字が前に存在する場所に移動されます。負の数は、後に存在する場所を検索します。
insert-comment (M-#)
数値引数がなければ、readline の comment-begin 変数の値が現在の行の先頭に挿入されます。数値引数が供給されるなら、このコマンドは、トグルとして機能します: 行の最初の文字が comment-begin の値に一致しないなら、値は、挿入されます。そうでなければ、 comment-begin 中の文字は、行の先頭から削除されます。どちらの場合ではも、行は、まるで改行がタイプされたかのように受け付けられます。 comment-begin のデフォルト値は、現在の行をシェルのコメントにします。数値引数でコメント文字を取り除くと、行は、シェルによって実行されます。
dump-functions
すべての関数とそれらのキーバインディングを readline 出力ストリームに印刷します。数値引数が供給される場合、出力は、それが inputrc ファイルの一部になることができるような方法でフォーマットされます。
dump-variables
すべての設定可能な変数とそれらの値を readline 出力ストリームに印刷します。数値引数が供給される場合、出力は、それが inputrc ファイルの一部になることができるような方法でフォーマットされます。
dump-macros
すべてのマクロに結び付けられた (バインドされた) readline キーシーケンスとそれが出力する文字列を印刷します。数値引数が供給される場合、出力は、それが inputrc ファイルの一部になることができるような方法でフォーマットされます。
emacs-editing-mode (C-e)
vi コマンドモードになっている場合、これを emacs 編集モードに切り替えます。
vi-editing-mode (M-C-j)
emacs 編集モードになっている場合、これを vi 編集モードに切り替えます。

デフォルトのキーバインド

次は、デフォルトの emacs バインディングと vi バインディングのリストです。第 8 のビットがセットされた文字は、M-<character>として書かれます、また メタ化された 文字を引用します。 emacs 標準バインディングのリストに記載されない印刷可能な ASCII 文字は、与えられた文字をそのまま入力行に挿入する、 self-insert 関数に結び付けられ (バインドされ) ます。 vi 挿入モードにおいて、特に記述されていない文字は、すべて self-insert に結び付けられ (バインドされ) ています。 C-Z や C-C のような、 stty(1) や端末ドライバによってシグナル生成に割り当てられた文字は、その機能を保持します。大文字と小文字のメタ化された文字は、 emacs モードのメタキーマップと同じ関数に結び付けられ (バインドされ) ます。それは、readline に ( bell-style 変数の設定に従って) ベルを鳴らさせて、残りの文字は、結び付きを解かれ (アンバインドされ) ます。

Emacs モード

 

Emacs 標準バインディング
 

"C-@" set-mark
"C-A" beginning-of-line
"C-B" backward-char
"C-D" delete-char
"C-E" end-of-line
"C-F" forward-char
"C-G" abort
"C-H" backward-delete-char
"C-I" complete
"C-J" accept-line
"C-K" kill-line
"C-L" clear-screen
"C-M" accept-line
"C-N" next-history
"C-P" previous-history
"C-Q" quoted-insert
"C-R" reverse-search-history
"C-S" forward-search-history
"C-T" transpose-chars
"C-U" unix-line-discard
"C-V" quoted-insert
"C-W" unix-word-rubout
"C-Y" yank
"C-]" character-search
"C-_" undo
" " to "/" self-insert
"0" to "9" self-insert
":" to "~" self-insert
"C-?" backward-delete-char

Emacs メタバインディング

 


"M-C-G" abort
"M-C-H" backward-kill-word
"M-C-I" tab-insert
"M-C-J" vi-editing-mode
"M-C-M" vi-editing-mode
"M-C-R" revert-line
"M-C-Y" yank-nth-arg
"M-C-[" complete
"M-C-]" character-search-backward
"M-space" set-mark
"M-#" insert-comment
"M-&" tilde-expand
"M-*" insert-completions
"M--" digit-argument
"M-." yank-last-arg
"M-0" digit-argument
"M-1" digit-argument
"M-2" digit-argument
"M-3" digit-argument
"M-4" digit-argument
"M-5" digit-argument
"M-6" digit-argument
"M-7" digit-argument
"M-8" digit-argument
"M-9" digit-argument
"M-<" beginning-of-history
"M-=" possible-completions
"M->" end-of-history
"M-?" possible-completions
"M-B" backward-word
"M-C" capitalize-word
"M-D" kill-word
"M-F" forward-word
"M-L" downcase-word
"M-N" non-incremental-forward-search-history
"M-P" non-incremental-reverse-search-history
"M-R" revert-line
"M-T" transpose-words
"M-U" upcase-word
"M-Y" yank-pop
"M-\" delete-horizontal-space
"M-~" tilde-expand
"M-C-?" backward-kill-word
"M-_" yank-last-arg

Emacs Control-X バインディング

 


"C-XC-G" abort
"C-XC-R" re-read-init-file
"C-XC-U" undo
"C-XC-X" exchange-point-and-mark
"C-X(" start-kbd-macro
"C-X)" end-kbd-macro
"C-XE" call-last-kbd-macro
"C-XC-?" backward-kill-line

 

VI モードバインディング

 

VI 挿入モード関数

 


"C-D" vi-eof-maybe
"C-H" backward-delete-char
"C-I" complete
"C-J" accept-line
"C-M" accept-line
"C-R" reverse-search-history
"C-S" forward-search-history
"C-T" transpose-chars
"C-U" unix-line-discard
"C-V" quoted-insert
"C-W" unix-word-rubout
"C-Y" yank
"C-[" vi-movement-mode
"C-_" undo
" " to "~" self-insert
"C-?" backward-delete-char

VI コマンドモード関数

 


"C-D" vi-eof-maybe
"C-E" emacs-editing-mode
"C-G" abort
"C-H" backward-char
"C-J" accept-line
"C-K" kill-line
"C-L" clear-screen
"C-M" accept-line
"C-N" next-history
"C-P" previous-history
"C-Q" quoted-insert
"C-R" reverse-search-history
"C-S" forward-search-history
"C-T" transpose-chars
"C-U" unix-line-discard
"C-V" quoted-insert
"C-W" unix-word-rubout
"C-Y" yank
"C-_" vi-undo
" " forward-char
"#" insert-comment
"$" end-of-line
"%" vi-match
"&" vi-tilde-expand
"*" vi-complete
"+" next-history
"," vi-char-search
"-" previous-history
"." vi-redo
"/" vi-search
"0" beginning-of-line
"1" to "9" vi-arg-digit
";" vi-char-search
"=" vi-complete
"?" vi-search
"A" vi-append-eol
"B" vi-prev-word
"C" vi-change-to
"D" vi-delete-to
"E" vi-end-word
"F" vi-char-search
"G" vi-fetch-history
"I" vi-insert-beg
"N" vi-search-again
"P" vi-put
"R" vi-replace
"S" vi-subst
"T" vi-char-search
"U" revert-line
"W" vi-next-word
"X" backward-delete-char
"Y" vi-yank-to
"\" vi-complete
"^" vi-first-print
"_" vi-yank-arg
"`" vi-goto-mark
"a" vi-append-mode
"b" vi-prev-word
"c" vi-change-to
"d" vi-delete-to
"e" vi-end-word
"f" vi-char-search
"h" backward-char
"i" vi-insertion-mode
"j" next-history
"k" prev-history
"l" forward-char
"m" vi-set-mark
"n" vi-search-again
"p" vi-put
"r" vi-change-char
"s" vi-subst
"t" vi-char-search
"u" vi-undo
"w" vi-next-word
"x" vi-delete
"y" vi-yank-to
"|" vi-column
"~" vi-change-case

関連項目

The Gnu Readline Library, Brian Fox and Chet Ramey
The Gnu History Library, Brian Fox and Chet Ramey
bash(1)

関連ファイル

~/.inputrc
個別の readline 初期化ファイル

作者

Brian Fox, Free Software Foundation
 
bfox@gnu.org

Chet Ramey, Case Western Reserve University

 

chet@ins.CWRU.Edu

バグレポート

readline にバグを見つけた場合、それを報告するべきです。しかし、最初にそれが実際にバグで、所有している readline ライブラリが最新のバージョンであるかどうか確かめるべきです。

いったんバグが本当に存在することを確定したならば、バグレポートを bug-readline@ gnu.org にメールしてください。修理方法 (フィックス) 方法がわかっている場合、同様にメールを歓迎します。提案や `哲学的な' バグレポートは、 bug-readline@ gnu.org にメールするか、または Usenet ニュースグループ gnu.bash.bug に投稿してください。

このマニュアルページに関するコメントやバグレポートは、直接 chet@ins.CWRU.Edu に送ってください。

バグ

大きすぎること、そして遅すぎること。
2006 Apr 26 GNU Readline 5.2