Next: , Previous: , Up: The Emacs Editor   [Contents][Index]


10 名前を指定してコマンドを実行する

すべてのEmacsコマンドは、それを使えば実行できるような名前を持っています。使いやすいようにキーバインディングされているコマンドも、たくさんあります。これらのコマンドはキーまたは名前で実行できます。キーがバインドされていないコマンドもたくさんあり、そのようなコマンドは名前でしか実行できません(キーバインドをセットアップする方法については、キーバインディングのカスタマイズを参照してください)。

慣例によりコマンド名はauto-fill-modemanual-entryのように、ハイフンで区切られた、1つ以上の単語となっています。コマンド名は覚えやすいように、略されていない英単語が主に使われます。

コマンドを名前で実行するには、最初に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の以前のメジャーバージョンのいずれかでobsolete(時代遅れ)と宣言されたコマンドは無視されます。これらのコマンドにたいしては、完全な名前をタイプする必要があります。Emacsのカレントバージョンでobsoleteとマークされたコマンドは一覧されます(obsoleteなコマンドとはもっと新しくより良い代替が存在していて、将来のEmacsリリースにおいて廃止が予定されているコマンドのこと)。

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

これとは逆に、Emacsはカレントバッファーと特に関連するものを除くすべてのコマンドを除外することもできます。M-S-x (“meta shift x”)コマンドはM-xと同様に機能しますが、Emacsが関知するすべて(またはほとんど)のコマンドをリストするかわりに、カレントのメジャーモードや有効なすべてのマイナーモードに“belonging(所属する)”とマークされたコマンドだけをリストします。

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-bindingsnilにセットすればオフにできます。suggest-key-bindingsの値には数字も指定でき、この場合Emaceは指定された秒数の間、キーバインドを表示します。バインディングを表示するときのデフォルトは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-xexecute-extended-commandを実行します。これは他のコマンドの名前を読み取って実行するコマンドです。