Next: , Previous: Minibuffer, Up: Top


5 名前でコマンドを実行する方法

使用頻度の高いコマンドや素早い打鍵が必要なEmacsコマンドは、 使い勝手をよくするために、キー(文字の短い列)にバインドしてあります。 短縮する必要のないその他のEmacsコマンドはキーにバインドしてありません。 これらのコマンドを実行するには、コマンド名を使う必要があります。

慣習として、コマンド名は1単語かハイフンで区切った2語以上の単語です。 たとえば、auto-fill-modemanual-entryです。 たとえ打鍵文字数が多くなったとしても、 (意図が)不明瞭な文字数個をキーとして使うよりも、 英単語をコマンド名として使うほうが覚えやすいのです。

コマンドをその名前で実行するには、M-xで始めて、 コマンド名を打ち込み、<RET>で終えます。 M-xは、コマンド名を読むためにミニバッファを使います。 <RET>キーはミニバッファを抜けてコマンドを実行します。 このとき、プロンプトとして文字列‘M-x’を ミニバッファの先頭に表示して、 実行するコマンド名を入力しなければならないことをユーザーに示します。 ミニバッファの詳細については、See Minibuffer

コマンド名の入力には、補完を使えます。 たとえば、つぎのように打って、 コマンドforward-charを起動できます。

     M-x forward-char <RET>

あるいは、

     M-x forw <TAB> c <RET>

とします。 ここで、forward-charは、 C-fキーで起動されるコマンドと同じです。 コマンドがキーにバインドしてあるかどうかに関わらず、 M-xですべてのEmacsコマンドを名前で起動できます。

コマンド名を入力中にC-gを打つと、 M-xコマンドを取り消してミニバッファから抜け出し、 最終的にはトップレベルに戻ります。

M-xで起動するコマンドに数引数を渡すには、 M-xを打つまえに、数引数を指定します。 M-xは、実行する関数に引数を渡します。 引数の値は、コマンド名を読み込んでいるあいだ、プロンプトに表示されます。

入力したコマンドに専用のキーバインドがある場合には、 Emacsはその旨エコー領域に表示します。 この表示は、コマンドの実行が終了したあと、2秒間表示されます (すぐに何かを打てば、この限りではない)。 たとえば、コマンドM-x forward-wordを入力した場合、 M-fと打ったほうが簡単に同じコマンドを実行できるという意味の メッセージが表示されます。 suggest-key-bindingsnilを設定すれば、 これらのメッセージ表示をオフにできます。

本書では、名前で実行するコマンドの説明において、 名前を終えるために必要な<RET>を省略します。 つまり、M-x auto-fill-mode <RET>ではなく、 M-x auto-fill-modeとします。 コマンド名に続く引数も示す場合のように、 <RET>が必要なことを強調する場合にのみ、 <RET>を書きます。

M-xは、execute-extended-commandを実行することで動作します。 execute-extended-commandは、 他のコマンドの名前を読み取って、それを実行する役割を担うコマンドです。