Go to the first, previous, next, last section, table of contents.

プレフィックスコマンドアーギュメント

インタラクティブに呼ばれるコマンドに対してアーギュメントを与える方法の 1つにプ レフィックスアーギュメントがあります (プレフィックスアーギュメントをプレフィッ クスキーと間違わないようにして下さい)。これは常に利用可能で、コマンドは (それ を)用いるか否かを選択することができます。プレフィックスアーギュメントの初期値 はnilで、値を変えるための関数がいくつか存在しています。

これらの関数は 2通りの方法でその値を変更します。 (通常) C-u にバインドされる universal-argument は、cons を用いて universal-argument の呼ばれた回数を示すリ ストを作ります。プレフィックスアーギュメントを用いる関数が必要とする場合、この リストは数値のフォームに変換されます。

(通常) ESC-数字にバインドされる digit-argument は、 (実際に)数値を作ります。

プレフィックスアーギュメントは(それがどのような形であれ)変換されてない場合 raw もしくは "未処理である" と呼ばれ、関数 prefix-number-value が(その)リスト フォームを数値に変換した場合 "処理された" と呼ばれます。

(通常) コマンドは、その本体で interactive を呼んで宣言を行なうことで、受け取る アーギュメントのフォームの種類を指定しますが、プレフィックスアーギュメントの値 を(直接)見ることもありえます。

Command: universal-argument

この関数は、(後に続く)コマンド用の数値アーギュメントを始めます。これはキー ボードから文字を読み込み、その最初の文字が負符号の場合、作られる(数値の) アーギュメントの符号を反転し(負符号が複数回用いられた場合、続けてアーギュ メントの反転を行ないます)、 digit を読み込むとそれを 10進数のアーギュメン トを作るのに用います。

最初に digit でない負符号でない文字を読み込むと、それを un-read し(訳注:

読み込まれなかったことにし)、ここで作ったアーギュメントを用い実行するコマ ンドの最初の文字になるようにします。

digit や負符号が続かない場合、このコマンドはアーギュメントとして 4 を与え ます。

インタラクティブに用いられた場合、これは(自分自身が)バインドされている文字 (通常 C-U にバインドされますが)に注目し、それがタイプされるごとにアーギュ メントを 4 倍します。(このため) C-U C-U C-U C-F をタイプすると、ポイントを 64 文字先に進めることになります。

Command: digit-argument arg

この関数は、(次の)コマンド用の数値アーギュメントの一部を作ります。(通常は そうなりますが) arg が nil の場合、この関数はdigit の読み込みに進み 10進数 を作ります。 digit-argument を起動するのにタイプした(最後の)文字から最初の digit でない文字までを読み込むと、最初の digit でない文字を un-read し(訳 注: 読み込まれなかったことにし)、それをここで作ったアーギュメントを用い実 行するコマンドの最初の文字になるようにします。

arg が数値の場合、(それを)数値アーギュメントを作る時にベースとして用いま す。読み込んだ digit をアーギュメントの低い方の 10進部分とします( arg が 20 で、読み込んだ digit が 5 と 6 である場合、数値アーギュメントは 2056 に なります)。

インタラクティブに呼ばれた場合(この関数はインタラクティブに呼ばれないと意 味がないわけですが)、 arg は(未処置の)プレフィックスアーギュメントになりま す。ですから C-u ESC 5 は 45 ではなく 5 の数値アーギュメントになります (C-u は処理されなくてはいけません)(訳注:??)。

(通常) この関数は ESC <DIGIT> にバインドされます。

Command: negative-argument arg

この関数は、(次の)コマンド用の数値アーギュメントの一部を作ります。これは負 のプレフィックスアーギュメントを作りますが、それ以外は digit-argument と

(全く)同じように働きます。

通常、この関数は ESC - にバインドされます。

Function: prefix-numeric-value arg

この関数は、 raw プレフィックスアーギュメント arg の示す数値を返します。 raw プレフィックスアーギュメントは、シンボルもしくは数値もしくはリストで す。 nil の場合 1 を返します。 nil 以外のシンボルの場合、-1 を返します。数 値の場合、その数値を返し、リストの場合、そのリストの car (これは数字でなく てはいけません) を返します。

Variable: current-prefix-arg

この変数は、 (次のコマンドに対する)プレフィックスアーギュメントの値です。 これは、数値か、(負の値を示す)シンボル - か、 (1 回以上 C-u がタイプされた 場合の) car が数値であるリストか、 (アーギュメントが指定されなかった場合 の) nil です。これは (interactive "P") が与える raw プレフィックスアーギュ メントです。

Variable: prefix-arg

この変数は、 (次のコマンドに対する)プレフィックスアーギュメントの値です。 これは、数値か、(arg としての負符号を示す)シンボル - か、 (1 回以上 C-u が タイプされた場合の) car が数値であるリストか、 (アーギュメントが指定されな かった場合の) nil です。

見ようとする時には nil に設定されているため、この変数を調べることでコマン ドに対するアーギュメントを見い出すことはできません。変数 current-prefix- arg のほうを用いるべきですが、 (通常) コマンドは (interactive "P") でこの プレフィックスアーギュメントを得ることができます。


Go to the first, previous, next, last section, table of contents.