GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Arguments.html ・ emacs-doc.conao3.com

9.10 数値引数

数学やコンピュータサイエンスの用語では、引数とは「関数や演算に与えられるデータ」を指します。Emacsのあらゆるコマンドに数値引数(プレフィックス引数とも呼ばれます)を指定できます。一部のコマンドでは、この引数を繰り返し回数として解釈します。例えば、C-fに10という引数を指定すると、ポイントを1文字ではなく10文字分前方に移動させます。これらのコマンドでは、引数に1を指定しない場合と等価となり、負の引数を指定すると逆方向に移動または動作します。

数値引数を指定する最も簡単な方法は、Metaキーを押したまま数字やマイナス記号を入力することです。例えば、

M-5 C-n

5行分下に移動します。キー M-1、M-2 など、および M-- には、次のコマンドの引数を設定するコマンド (digit-argument および negative-argument) が割り当てられています。数字を含まない M-- は、通常 −1 を意味します。

2桁以上の数字を入力する場合、2桁目以降の数字で Meta キーを押し続ける必要はありません。したがって、50行分下に移動するには、次のように入力してください。

M-5 0 C-n

なお、想定されるかもしれませんが、これで ‘0’ が5回挿入されて1行下に移動することはありません。‘0’ は接頭辞引数の一部として扱われます。

(もし ‘0’ を5回挿入したい場合はどうすればよいでしょうか。M-5 C-u 0 と入力してください。ここでは、C-u が接頭辞引数を終了させるため、次のキー入力から実行したいコマンドが始まります。なお、C-u のこの意味はこの場合にのみ適用される点に注意してください。C-u の通常の役割については、以下を参照してください。)

M-1やM-2などと入力する代わりに、数値引数を指定する別の方法として、C-u(universal-argument)と入力した後にいくつかの数字を続けるか、あるいは(負の引数の場合は)マイナス記号の後に数字を続ける方法があります。数字を伴わないマイナス記号は、通常 −1 を意味します。

C-u だけは「4倍」という特別な意味を持ち、次のコマンドの引数を4倍にします。C-u C-u は16倍にします。したがって、C-u C-u C-f は16文字分進みます。その他の便利な組み合わせとしては、C-u C-n、C-u C-u C-n(画面のかなりの割合分下に移動)、C-u C-u C-o(16行の空白行を作成)、C-u C-k(4行を削除)などがあります。

自己挿入文字の前に数値引数を指定することで、その文字を複数コピーして挿入できます。文字が数字でない場合は、この操作は単純です。例えば、C-u 6 4 a は文字 ‘a’ を64回挿入します。しかし、数字の挿入にはこの方法は使えません。C-u 6 4 1 は引数として 641 を指定することになります。引数と挿入する数字を別の C-u で区切ることも可能です。例えば、C-u 6 4 C-u 1 は文字 ‘1’ を64回挿入します。

引数の有無は考慮するものの、その値は無視するコマンドもあります。例えば、M-q (fill-paragraph) コマンドはテキストを充填しますが、引数を指定するとテキストの両端揃えも行います。(M-q の詳細については、テキストの充填を参照してください。)これらのコマンドでは、単一の C-u で引数を指定するだけで十分です。

一部のコマンドでは、引数の値を繰り返し回数として使用しますが、引数がない場合は特別な動作をします。例えば、引数 n を伴うコマンド C-k (kill-line) は、終端の改行文字を含めて n 行分を削除します。しかし、引数のない C-k は特殊で、次の改行文字までのテキストを削除します。あるいは、ポイントが行の末尾にある場合は、改行文字自体を削除します。したがって、引数のない 2 つの C-k コマンドは、引数に 1 を指定した C-k と同様に、空白以外の行を削除できます。(C-k の詳細については、テキストの削除と移動 を参照してください。)

一部のコマンドでは、単純な C-u を通常の引数とは異なるものとして扱います。また、マイナス記号のみの引数を −1 の引数とは異なるものとして扱うコマンドもあります。こうした特殊なケースについては、該当する箇所で説明されています。これらは個々のコマンドの利便性を高めるために設けられており、そのコマンドのドキュメント文字列に記載されています。

接頭辞引数という用語を用いるのは、こうした引数をコマンドの前に入力することを強調するためであり、また、コマンドの呼び出し後に入力するミニバッファ引数(ミニバッファを参照)と区別するためです。

グラフィカルディスプレイでは、C-0、C-1などはM-0、M-1などと同様に動作します。