Icompleteモードは、ミニバッファーで利用可能な補完候補を素早く選択する便利な方法を提供します。これが有効な場合にはミニバッファーでタイプすることにより、すでにタイプした文字にマッチする利用可能な候補を連続で表示します。
C-jとタイプすることにより、常にリストの最初の補完候補を選択できます。つまり特定の補完候補を選択するには、まずその候補をリストの先頭にすることです。これを行うには2つの方法があります。1つ目の方法は、補完候補の名前をさらにタイプすることにより、違う候補が含まれないように、希望する補完候補にリストを絞りこむ方法です。もう1つはC-.およびC-,を使って、望む候補が先頭にくるまでリストをローテートする方法です。
M-TABはC-jのようにリストの最初の補完候補を選択しますが、ミニバッファーを抜けないので、さらに編集を続けることができます。これはファイル名の入力で通常使われます。M-TABにより、いくつかのディレクトリー階層をたどることができます。
ミニバッファーにたいしてIcompleteモードを有効にするにはM-x
icomplete-modeとタイプするか、変数icomplete-mode
をt
にカスタマイズします(Easy Customizationインターフェースを参照)。
変数icomplete-in-buffer
をt
にカスタマイズすることにより、C-M-i
(コマンドcompletion-at-point
)でもIcompleteモードを有効にできるようになります。バッファー内での補完では、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)
FidoモードはIcompleteの代替えとなるモードです。このモードはIcompleteモードと非常に似ていますが、Idoモードと呼ばれるポピュラーな拡張の機能のいくつかを残しています(実際のところこのモード名は“Fake
Ido”から継承された)。特にFidoモードではC-sとC-rを補完リストのローテートにも使用し、C-kはリスト内のファイル削除やバッファーのkillに使用できます。他に特筆すべき観点はデフォルトの保管スタイルとして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
にカスタマイズしてください(Easy Customizationインターフェースを参照)。
IcompleteモードとFidoモードは、デフォルトでは同一行上の可能な補完をプロンプトとして表示します。補完候補をプロンプトの下に垂直に表示するにはM-x
icomplete-vertical-modeとタイプするか、あるいは変数icomplete-vertical-mode
をt
にカスタマイズしてください(Easy Customizationインターフェースを参照)。