ここでは簡単な例が理解しやすいでしょう。M-xは、コマンド名を読み取るためにミニバッファーを使います。補完はミニバッファーのテキストと、既存のEmacsコマンドの名前のマッチによって機能します。コマンドをauto-fill-mode
を実行したいとします。M-x
auto-fill-mode RETをタイプすればよいのですが、補完を使えばもっと簡単になります。
M-x a u
TABとタイプすると、TABは‘au’で始まる補完候補(この例ではコマンド名)を探します。auto-fill-mode
、autoconf-mode
などの候補がいくつかありますが、候補はすべてauto
で始まるので、ミニバッファーの‘au’は‘auto’に補完されます(あなたのEmacsのセッションには、もっと多くのコマンドが定義されているかもしれません。たとえばauthorize-me
というコマンドが定義されている場合には、Emacsが補完できるのは‘aut’までです)。
もう一度TABをタイプしても、次の文字は‘-’、‘a’、‘c’のどれなのか決定できません。そのため文字は追加されず、かわりにTABは可能性のある補完候補の一覧を別のウィンドウに表示します。
次に-fと入力します。ミニバッファーには‘auto-f’が入力されました。この文字で始まるコマンド名は、auto-fill-mode
だけです。ここでTABを入力すると、残りの部分が補完されて、ミニバッファーの引数は‘auto-fill-mode’になります。
したがってa u TAB - f TABと入力するだけで、‘auto-fill-mode’と入力できるのです。
ミニバッファーの終端にポイントがなくてもTABは機能します。この場合にはポイント位置とミニバッファーの終端の両方でテキストが補完されます。M-x autocmとタイプしてからC-bを押下して‘m’の前にポイントを移動、それからTABをタイプすればポイント位置に‘onf-’、ミニバッファーの終端に‘ode’が挿入されて、ミニバッファーの内容は‘autoconf-mode’になるのです。