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

21.6.3 補完を行うミニバッファコマンド

本節では、ミニバッファで補完を行う際に使用されるキーマップ、コマンド、およびユーザーオプションについて説明します。

変数: minibuffer-completion-table

この変数の値は、ミニバッファでの補完に使用される補完テーブル(基本的な補完関数を参照)です。これは、completing-read が try-completion に渡す内容を保持するバッファローカル変数です。minibuffer-complete などのミニバッファ補完コマンドで使用されます。

変数: minibuffer-completion-predicate

この変数の値は、completing-read が try-completion に渡す述語です。また、この変数は他のミニバッファ補完関数でも使用されます。

変数: minibuffer-completion-confirm

この変数は、Emacsがミニバッファを終了する前に確認を求めるかどうかを決定します。completing-read はこの変数を設定し、関数 minibuffer-complete-and-exit は終了前にその値を確認します。値が nil の場合、確認は不要です。値が confirm の場合、ユーザーは有効な補完候補ではない入力で終了できますが、Emacsは確認を求めます。値が confirm-after-completion の場合、ユーザーは有効な補完候補ではない入力で終了できますが、ユーザーが minibuffer-confirm-exit-commands のいずれかの補完コマンドの直後にその入力を入力した場合、Emacsは確認を求めます。

変数: minibuffer-confirm-exit-commands

この変数には、completing-read の引数 require-match が confirm-after-completion である場合に、ミニバッファを抜ける前に Emacs に確認を求めるコマンドのリストが格納されています。このリストにあるコマンドを実行した直後にユーザーがミニバッファを抜けようとした場合に、確認が求められます。

コマンド: minibuffer-complete-word

この関数は、ミニバッファの内容を最大1単語分補完します。ミニバッファの内容に補完候補が1つしかない場合でも、minibuffer-complete-word は単語構成要素ではない最初の文字以降に文字を追加しません。構文テーブルを参照してください。

コマンド: minibuffer-complete

この関数は、ミニバッファの内容を可能な限り補完します。

コマンド: minibuffer-complete-and-exit

この関数はミニバッファの内容を補完し、確認が不要な場合(すなわち minibuffer-completion-confirm が nil である場合)は終了します。確認が必要な場合は、直ちにこのコマンドを再実行することで確認が行われます。なお、このコマンドは2回連続で実行された際に確認なしで動作するようにプログラムされています。

コマンド: minibuffer-completion-help

この関数は、現在のミニバッファの内容に対して考えられる補完候補のリストを作成します。具体的には、変数 minibuffer-completion-table の値を collection 引数として、minibuffer-completion-predicate の値を predicate 引数として all-completions を呼び出すことで動作します。補完候補のリストは、*Completions* という名前のバッファにテキストとして表示されます。

関数: display-completion-list completions

この関数は、standard-output(通常はバッファ)内のストリームにcompletionsを出力します。(ストリームの詳細については、Lispオブジェクトの読み込みと出力を参照してください。)引数completionsは通常、all-completionsによって返されたばかりの補完のリストですが、必ずしもそうである必要はありません。各要素はシンボルまたは文字列のいずれかであり、いずれもそのまま出力されます。また、2つの文字列からなるリストを指定することもでき、その場合は文字列が連結されたかのように出力されます。2つの文字列のうち1つ目が実際の補完であり、2つ目の文字列は注釈として機能します。

この関数は minibuffer-completion-help によって呼び出されます。一般的な使い方は、次のように with-output-to-temp-buffer と組み合わせて使用することです。

(with-output-to-temp-buffer "*Completions*"
  (display-completion-list
    (all-completions (buffer-string) my-alist)))
ユーザーオプション: completion-auto-help

この変数が nil 以外の場合、次の文字が一意に定まらずに補完できないときは、補完コマンドが候補の一覧を自動的に表示します。

変数: minibuffer-local-completion-map

completing-read は、補完候補のいずれかとの完全一致が不要な場合に、この値をローカルキーマップとして使用します。デフォルトでは、このキーマップにより以下のバインドが設定されます:

?

minibuffer-completion-help

SPC

minibuffer-complete-word

TAB

minibuffer-complete

また、親キーマップとして minibuffer-local-map を使用します(minibuffer-local-map の定義 を参照)。

変数: minibuffer-local-must-match-map

completing-read は、補完候補のいずれかと完全一致する必要がある場合に、この値をローカルキーマップとして使用します。したがって、ミニバッファを無条件に終了させるコマンドである exit-minibuffer には、いかなるキーも割り当てられていません。デフォルトでは、このキーマップにより以下のバインドが設定されます:

C-j

minibuffer-complete-and-exit

RET

minibuffer-complete-and-exit

また、minibuffer-local-completion-mapを親キーマップとして使用します。

変数: minibuffer-local-filename-completion-map

これは単に SPC のバインドを解除するだけのシンプルなキーマップです。ファイル名にスペースが含まれる可能性があるためです。関数 read-file-name は、このキーマップを minibuffer-local-completion-map または minibuffer-local-must-match-map のいずれかと組み合わせます。

変数: minibuffer-beginning-of-buffer-movement

nil 以外の場合、ポイントがプロンプトの末尾より後にあるときは、M-< コマンドはプロンプトの末尾に移動します。ポイントがプロンプトの末尾またはそれ以前にあるときは、バッファの先頭に移動します。この変数が nil の場合、コマンドは beginning-of-buffer と同様に動作します。