総合手引 | セクション 3 | English | オプション |
これらの関数は
libedit
ライブラリで利用できます
(これには
libtermcap
ライブラリが必要です)。プログラムは
以下の関数が利用できます。
el_init() | |
ラインエディタを初期化し、他のすべてのライン編集関数が使用するデータ構造を 返します。 prog は、起動する側のプログラムの名前であり、どの設定を使用するか 決定するために editrc(5) ファイルを読み取るときに使用されます。 fin と fout はそれぞれ使用する入力ストリームと出力ストリームです。この ドキュメンテーションでは、 "the tty" の参照が実際にはこの入力/出力ストリームの 組み合わせを参照します。 | |
el_end() | |
クリーンアップし e で終了します。 el_init() で作成されたと想定されます。 | |
el_reset() | |
tty とパーサをリセットします。これは tty の状態を混乱させた可能性のある エラーの後で呼び出す必要があります。 | |
el_gets() | |
tty から 1 行を読み取ります。 count は、読み取られたキャラクタ数を 入れるように修正されます。処理が成功した場合は読み取られたラインを返し、 キャラクタが読取られないか、またはエラーが発生した場合は NULL を返します。 | |
el_getc() | |
tty から 1 キャラクタを読み取ります。 ch は、読み取られたキャラクタを 入れるように修正されます。処理が成功した場合は読み取られたキャラクタの数を 返し、そうでない場合は -1 を返します。 | |
el_push() | |
str
を入力ストリームに戻します。これはマクロ展開機構によって使用されます。
詳細については、
editrc(5)
の
bind
| |
el_parse() | |
argv
配列(サイズは
argc
エレメントです)
をパースし、組み込み
editline
コマンドを実行します。コマンドの接頭語が
"prog:"
の場合、
"prog"
が
el_init()
に指定された
prog
引数と一致するなら、
el_parse()
はコマンドを
実行するだけです。コマンドが未知の場合は戻り値は
-1 です。エラーがないかまたは
"prog"
が一致しなかった場合は
戻り値は
0 です。コマンドがエラーを
返したときは
1 です。詳細については、
editrc(5)
を参照してください。
注: argv[0] は el_parse() によって修正されることがあります。 "prog" と コマンド command の間のコロンは、NUL ("\0") で置き換えられます。 | |
el_set() | |
el_set()
editline
パラメータを設定します。
op
はどのパラメータを設定するかを決定し、
各操作には独自のパラメータリストがあります。
op の値については、必須引数リストとともに次のパラメータがサポート されています。 | |
EL_PROMPT,char *(*f)(EditLine *) | |
プロンプト印刷関数を f として定義します。これはプロンプトの入ったストリング を返すことです。 | |
EL_TERMINAL,const char *type | |
tty の端末タイプが type であると定義します。 type が NULL の場合は TERM にです。 | |
EL_EDITOR,const char *mode | |
編集モードを mode に設定します。それは "emacs" または "vi" の 1 つである必要があります。 | |
EL_SIGNAL,int flag | |
flag がゼロでない場合、 editline は、コマンド入力を読み取るときに、次の シグナル用のシグナルハンドラをインストールします。 SIGCONT, SIGHUP, SIGINT, SIGQUIT, SIGSTOP, SIGTERM, SIGTSTP, および SIGWINCH 。これら以外の場合、現在のシグナルハンドラが 使用されます。 | |
EL_BIND, | |
const char *, ..., NULL 組み込み bind コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_ECHOTC, | |
const char *, ..., NULL 組み込み echotc コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_SETTC, | |
const char *, ..., NULL 組み込み settc コマンドを実行します。詳細については、 editrc(5) を参照してください。 | |
EL_SETTY, | |
const char *, ..., NULL 組み込み setty コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_TELLTC, | |
const char *, ..., NULL 組み込み telltc コマンドを実行します。詳細については、 editrc(5) を 参照してください。 | |
EL_ADDFN, | |
const char *name, const char *help, "unsigned, char, (*func)(EditLine, *e,, int, ch) ユーザ定義関数 func() を追加します。これは name として参照され、 name に結合されたキーが入力されたときに呼び出されます。 help は name の説明です。 起動時に、 ch は呼び出しを起こすキーです。 func() の戻り値は次の 1 つです。 | |
CC_NORM | 通常のキャラクタを追加します。 |
CC_NEWLINE | 行末が入力されました。 |
CC_EOF | が入力されました。 |
CC_ARGHACK | 引数としてさらにコマンド入力を予期しています。表示されることは 何もしません。 |
CC_REFRESH | 表示をリフレッシュします。 |
CC_CURSOR | カーソルが移動されたので、 CC_REFRESH を更新および実行します。 |
CC_REDISPLAY | |
入力行全体を再表示します。これが便利なのは、キー結合がその他の 情報を出力する場合です。 | |
CC_ERROR | エラーが発生しました。ビープ音、そして tty をフラッシュします。 |
CC_FATAL | 致命的エラー。tty を既知の状態にリセットします。 |
EL_HIST, | |
History *(*func)(History *, int op, ...), const char *ptr どの歴史関数を使用するかを定義します。それは通常は history() です。 ptr は、 history_init() が返す値である必要があります。 | |
el_source() | |
file の内容を読むことで editline を初期化します。 el_parse() が、 file 内の行ごとに呼び出されます。 file が NULL の場合、 $HOME/.editrc を試します。 file の形式の詳細については、 editrc(5) を 参照してください。 | |
el_resize() | |
端末のサイズが変化する場合は呼び出す必要があります。 EL_SIGNAL が el_set() で設定されている場合、これは自動的に行われます。そうでない場合は、適切な 機会に el_resize() を呼び出すのはアプリケーションの責任です。 | |
el_line() | |
現在のラインについての編集情報を
LineInfo
で返します。これは次のように
定義されます。
typedef struct lineinfo { const char *buffer; /* バッファのアドレス */ const char *cursor; /* カーソルのアドレス */ const char *lastchar; /* 最後のキャラクタのアドレス */ } LineInfo; | |
el_insertstr() | |
カーソルがあるラインに str を挿入します。 str が空であるかフィットしない 場合は -1 を返します。それ以外の場合は 0 を返します。 | |
el_deletestr() | |
カーソルの前の num 個のキャラクタを削除します。 | |
el_data_set() | |
ユーザデータを data へ設定します。 | |
el_data_get() | |
ユーザデータを取得します。 | |
次の関数が利用できます。
history_init() | |
歴史リストを初期化し、他のすべての歴史関数が使用するデータ構造を返します。 | |
history_end() | |
クリーンアップし、
h
で終了します。
history_init()
で作成されたものと
想定されます。
| |
history() | |
歴史リストについて演算 op を実行します。演算が要求する オプション引数があります。 op について次の値が、必須引数リストとともに サポートされています。 | |
H_EVENT,int size | |
size エレメントに歴史のサイズを設定します。 | |
H_END | クリーンアップし、 h で終了します。 history_init() で作成されたものと 想定されます。 |
H_CLEAR | |
歴史をクリアします。
| |
H_FUNC, | |
void *ptr, history_gfun_t first, history_gfun_t next, history_gfun_t last, history_gfun_t prev, history_gfun_t curr, history_vfun_t clear, history_efun_t enter, history_efun_t add さまざまな歴史演算を実行する関数を定義します。 ptr は、関数が起動されるときに関数に指定される引数です。 | |
H_FIRST | |
歴史の最初のエレメントを返します。 | |
H_LAST | |
歴史の最後のエレメントを返します。 | |
H_PREV | |
歴史の直前のエレメントを返します。 | |
H_NEXT | |
歴史の次のエレメントを返します。 | |
H_CURR | |
歴史の現在のエレメントを返します。 | |
H_ADD,const char *str | |
歴史の現在のエレメントの末尾に str を追加するか、またはエレメントがない 場合は H_ENTER で 1 つのエレメントを作成します。 | |
H_ENTER,const char *str | |
str を新しいエレメントとして history() に追加します。必要であれば、最も古い エントリを削除して、リストを作成されたサイズに保ちます。 | |
H_PREV_STR,const char *str | |
str で開始する、最も近い直前のイベントを返します。 | |
H_NEXT_STR,const char *str | |
str で開始する、最も近い次のイベントを返します。 | |
H_PREV_EVENT,int e | |
e という番号の直前のイベントを返します。 | |
H_NEXT_EVENT,int e | |
e という番号の次のイベントを返します。 | |
H_LOAD,const char *file | |
file に保存された歴史リストをロードします。 | |
H_SAVE,const char *file | |
歴史リストを file に保存します。 | |
el_parse() は、指定された argv[0] を修正してはなりません。
トークン化関数は <histedit.h> 内では公に定義されていません。
EDITLINE (3) | January 11, 1997 |
総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | "I liken starting one's computing career with Unix, say as an undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act." | ” |
— Ken Pier, Xerox PARC |