数学や計算機の用語では、引数(argument)という単語は 『関数や操作に与えるデータ』を意味します。 Emacsのすべてのコマンドには、数引数(numeric argument) (前置引数(prefix argument)とも呼ぶ)を指定できます。 コマンドによっては、引数を反復回数として解釈します。 たとえば、引数10をC-fに指定すると、 カーソルを通常の1文字ではなく、10文字分前向きに移動します。 これらのコマンドでは、引数を指定しないと引数1を指定したのと同等になります。 この種のコマンドの多くでは、負の引数を指定すると、 逆向きの移動や逆の操作を指示することになります。
端末のキーボードに<META>キーがある場合、 数引数を入力するもっとも簡単な方法は、 <META>キーを押し下げたままで、数字やマイナス記号を打ちます。 たとえば、
M-5 C-n
は、カーソルを5行下に移動します。
Meta-1、Meta-2、Meta--などの文字がこのように動作するのは、
これらのキーが、後続のコマンドに引数を与えるように定義されたコマンド
(digit-argument
とnegative-argument
)に
バインドされているからです。
コントロールやコントロールとメタで修飾した数字と-も、
同様に数引数を指定します。
引数を指定する別の方法は、
C-u(universal-argument
)コマンドに続けて
引数の数字を入力することです。
C-uでは、修飾キーを押し下げ続けることなく引数の数字を打てます。
C-uはすべての端末で使えます。
負の引数を指定するには、C-uのあとにまずマイナス記号を打ちます。
マイナス記号だけだと−1を意味します。
C-uのあとに数字でもマイナス記号でもない文字を打つと、 『4倍する』という特別な意味になります。 つまり、後続のコマンドに渡す引数を4倍します。 C-uを2回打つと、引数を16倍します。 したがって、C-u C-u C-fは、カーソルを前向きに16文字分移動します。 16文字は通常の画面で約1/5行に相当するので、 カーソルを『速く』移動させたい場合に便利な方法です。 便利な他の組み合せは、 C-u C-nやC-u C-u C-n(画面の下方への移動に便利)、 C-u C-u C-o(『数多く』の空行を作る)、 C-u C-k(4行キルする)です。
コマンドによっては、引数の値ではなく、引数の有無だけを問題にします。
たとえば、コマンドM-q(fill-paragraph
)に引数を指定しないと
テキストの詰め込みのみを行います。
引数を指定すると、さらに幅揃えも行います。
(M-qに関する詳細は、see Filling。)
C-uだけを使えば、このようなコマンドに簡単に引数を指定できます。
引数の値を反復回数として使うにも関わらず、
引数がないと特別な動作をするコマンドもあります。
たとえば、C-k(kill-line
)に引数nを指定すると、
行区切りの改行も含めてn行をキルします。
これに対し、引数を指定しない場合は特別な動作となります。
つまり、つぎの改行文字までのテキストをキルするか、
行末にポイントがある場合は改行そのものをキルします。
したがって、引数を指定せずにC-kを2回実行すると、
引数1を指定したC-kと同様に、空行でない1行をキルします。
(C-kの詳細については、see Killing。)
いくつかのコマンドは、C-uだけの引数を通常の引数とは 異なるものとして扱います。 また、マイナス記号のみの引数を−1と区別するコマンドもあります。 これらの例外については、必要になったときに説明します。 これらの例外は、それぞれのコマンドを使いやすくするためにあります。
数引数を使って、文字のコピーを複数個挿入することもできます。 この操作は、数字以外の文字ならば簡単です。 たとえば、C-u 6 4 aで、文字‘a’を64個挿入できます。 しかし、数字では機能しません。 C-u 6 4 1は、引数が641であることを意味し、何も挿入しません。 引数と挿入したい数字を区切るには、もう1つC-uを打ちます。 たとえば、C-u 6 4 C-u 1で、数字‘1’を64個挿入できます。
コマンドのまえに引数を打つということを強調するために、また、 コマンドのあとのミニバッファ引数と区別するために、 『数引数』と同様に用語『前置引数』を使います。