補完とは、名前の略称を起点として、残りの部分を自動的に入力する機能です。補完は、ユーザーの入力を有効な名前のリストと照合し、入力内容によって一意に特定できる範囲を判定することで動作します。例えば、C-x b (switch-to-buffer)
と入力し、次に切り替えたいバッファ名の最初の数文字を入力して、さらに TAB (minibuffer-complete) と入力すると、Emacs は可能な限り名前を補完します。
標準のEmacsコマンドでは、シンボル、ファイル、バッファ、プロセスの名前に対する補完機能が提供されています。本節で紹介する関数を使えば、それ以外の種類の名前に対しても補完機能を実装できます。
try-completion
関数は補完のための基本的なプリミティブです。指定された初期文字列に対し、照合対象とする文字列セットを用いて、決定された最長の補完結果を返します。
関数 completing-read
は、補完のためのより高レベルなインターフェースを提供します。completing-read
を呼び出すことで、有効な名前のリストをどのように決定するかを指定します。その後、この関数は、補完に有用なコマンドにいくつかのキーを割り当てたローカルキーマップを用いてミニバッファを起動します。その他の関数は、補完を用いて特定の種類の名前を読み取るための、便利でシンプルなインターフェースを提供します。