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

11 コマンド名による実行

すべてのEmacsコマンドには、実行に使用できる名前があります。利便性のため、多くのコマンドにはキーバインドも設定されています。これらのコマンドは、キーを入力するか、名前を指定して実行できます。ほとんどのEmacsコマンドにはキーバインドが設定されていないため、名前で指定して実行するしかありません。(キーバインドの設定方法については、キーバインドのカスタマイズを参照してください。)

慣例として、コマンド名はハイフンで区切られた1つ以上の単語で構成されます。例えば、auto-fill-mode や manual-entry などです。コマンド名は、覚えやすくするため、主に完全な英単語が用いられます。

コマンド名を指定して実行するには、M-x で始め、コマンド名を入力し、最後に RET で終了します。M-x はミニバッファを使用してコマンド名を読み取ります。ミニバッファの先頭には、実行するコマンド名の入力を促す プロンプト として文字列 ‘M-x’ が表示されます。RET でミニバッファを終了し、コマンドを実行します。ミニバッファの詳細については、ミニバッファ を参照してください。

補完機能を使ってコマンド名を入力できます。例えば、forward-char コマンドを実行するには、次のように入力します。

M-x forward-char RET

または

M-x forw TAB c RET

なお、forward-charはキーC-fで実行するのと同じコマンドです。キーバインドが存在していても、コマンド名で実行することを妨げるものではありません。

M-x がコマンドの補完を完了する際、Emacs の以前のメジャーバージョンで 廃止 と宣言されたコマンドは無視されます。これらのコマンドについては、正式名称を入力する必要があります。現在の Emacs バージョンで廃止とマークされたコマンドが一覧表示されます。(廃止コマンドとは、より新しく優れた代替手段が存在し、将来の Emacs リリースで削除される予定のコマンドのことです。)

さらに、M-x 補完では、現在のバッファのメジャーモード(メジャーモードを参照)およびマイナーモード(マイナーモードを参照)に関連がなく、一般的にそれらでは動作しないコマンドを除外できます。デフォルトでは除外されるコマンドはありませんが、オプション read-extended-command-predicate をカスタマイズすることで、こうした無関係なコマンドを補完結果から除外できます。

逆に、Emacsは現在のバッファに特に関連のあるコマンド以外をすべて除外することができます。M-S-x(いわゆる「meta shift x」)コマンドはM-xと同様に動作しますが、Emacsが認識しているすべての(あるいはほとんどの)コマンドを列挙する代わりに、現在のメジャーモードや有効化されているマイナーモードに「属する」とマークされたコマンドのみを列挙します。

M-xをキャンセルしてコマンドを実行しない場合は、コマンド名を入力する代わりにC-gと入力してください。これにより、コマンドレベルに戻ります。

M-x で呼び出すコマンドに数値引数を渡すには、M-x の前にその数値引数を指定します。引数の値はコマンド名の読み込み中にプロンプトに表示され、最終的に M-x がそのコマンドに引数を渡します。例えば、コマンド forward-char に数値引数 42 を渡すには、C-u 42 M-x forward-char RET と入力します。

M-x で実行するコマンドにキーバインドが設定されている場合、Emacs はコマンド実行後のエコーエリアにその旨を表示します。例えば、M-x forward-word と入力すると、M-f と入力することで同じコマンドを実行できるというメッセージが表示されます。変数 suggest-key-bindings に nil を設定することで、これらのメッセージを非表示にできます。また、suggest-key-bindings に数値を指定することも可能で、その場合は Emacs がそのバインドを指定された秒数だけ表示した後、表示から削除します。デフォルトの動作では、バインドが 2 秒間表示されます。

さらに、suggest-key-bindings が nil ではない場合、M-x の補完リストには、キーバインドが設定されているすべてのコマンドに対して同等のキーバインドが表示されます。

キーバインドが割り当てられていないコマンドであっても、「M-x」プロンプトでフル名より短く入力すれば呼び出すことができます。Emacsは、こうした短縮形がフルコマンド名よりも大幅に短く、かつextended-command-suggest-shorterが非nilである場合に、エコーエリアにそれらのヒントを表示します。suggest-key-bindingsの設定も、これらのヒントに影響します。

本マニュアルでは、コマンド名を指定して実行する場合、名前を区切るRETを省略することがよくあります。したがって、M-x auto-fill-mode RETではなくM-x auto-fill-modeと表記することがあります。RETについては、コマンドの後に引数が続く場合など、強調したい場合にのみ記載します。

M-xは、別のコマンド名を読み取ってそれを呼び出す役割を持つコマンドexecute-extended-commandを実行することで動作します。