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

21.7.2 高速なミニバッファ選択

Icompleteモードを使用すると、ミニバッファ内の候補の中から要素を素早く選択できます。このモードを有効にすると、ミニバッファで入力を続けるたびに、入力した文字列に一致する候補の一覧が順次表示されます。

いつでも C-j と入力することで、リスト内の最初の補完項目を選択できます。つまり、特定の補完項目を選択するには、それをリストの先頭に持ってくればよいということです。これには2つの方法があります。補完項目名をさらに入力してリストを絞り込み、目的の項目より上にある不要な補完項目を除外する方法です。あるいは、C-. や C-, を使ってリストを回転させ、目的のバッファを先頭に持ってくる方法もあります。

M-TAB は C-j と同様にリスト内の最初の補完項目を選択しますが、ミニバッファを離脱しないため、さらに編集を加えることができます。これは通常、ファイル名を入力する際に使用され、M-TAB を数回使うことでディレクトリ階層を辿ることができます。

ミニバッファで Icomplete モードを有効にするには、M-x icomplete-mode と入力するか、変数 icomplete-mode を t にカスタマイズしてください(Easy Customization Interface を参照)。

また、変数 icomplete-in-buffer を t にカスタマイズすることで、C-M-i に対しても Icomplete モード(コマンド completion-at-point)を有効にできます。バッファ内での補完では、変数 completion-auto-help によって Icomplete モードの候補表示が表示されるタイミングが制御されます。t のデフォルト値では、最初に C-M-i と入力した際に候補表示が現れます。

デフォルトでは、C-M-i を押すと、Icomplete モードの両方における補完候補のバッファ内表示と *Completions* バッファが表示されます。icomplete-in-buffer を使用している場合、この *Completions* バッファの表示を抑制したいこともあるでしょう。その場合は、初期化ファイルに以下を追加してください(Emacs 初期化ファイル を参照):

(advice-add 'completion-at-point :after #'minibuffer-hide-completions)

Icompleteモードの代替手段として、Fidoモードがあります。これはIcompleteモードと非常に似ていますが、Idoモードという人気の拡張機能の機能の一部を継承しています(実際、その名称は「Fake Ido」に由来しています)。Fidoモードでは、とりわけC-sとC-rが補完リストの切り替えに使用され、C-kでファイルの削除やリスト内のバッファの終了が可能です。もう一つの特筆すべき点は、flexがデフォルトの補完スタイルとして使用されていることです(補完の代替手段の選び方を参照)。これを変更するには、初期化ファイルに以下を追加してください(Emacs初期化ファイルを参照):

(defun my-icomplete-styles ()
  (setq-local completion-styles '(initials flex)))
(add-hook 'icomplete-minibuffer-setup-hook 'my-icomplete-styles)

Fidoモードを有効にするには、M-x fido-modeと入力するか、変数fido-modeをtにカスタマイズしてください(簡単カスタマイズインターフェースを参照)。

IcompleteモードおよびFidoモードでは、デフォルトで補完候補がプロンプトと同じ行に表示されます。補完候補をプロンプトの下に縦方向に表示するには、M-x icomplete-vertical-modeと入力するか、変数icomplete-vertical-modeをtにカスタマイズしてください(Easy Customization Interfaceを参照)。