Icicles - Completion On Demand

Last edit

Changed:

< You invoke this using '''`C-M-F'''', that is, `C-M-S-f'

to

> You invoke this using '''`C-M-F'''', that is, `C-M-S-f'


iciclesimage
Previous: Icicles - Regressive CompletionIciclesIciclesIndexNext: Icicles - Moving Between the Minibuffer and Other Buffers

Completion On Demand

When the minibuffer is active for your input, completion is not always available. Functions such as ‘completing-read’ and ‘read-file-name’ provide completion, but other functions that read input in the minibuffer, such as ‘read-from-minibuffer’ and ‘read-string’, do not provide completion. (See Completion Status Indicators, for how to tell when completion is available in Icicles.)

But in Icicles you can always invoke (lax) completion to insert some completed text in the minibuffer – this is completion on demand.

On-demand completion is always available to insert a file name. You invoke this using ‘C-M-F’, that is, ‘C-M-S-f’ (`icicle-read+insert-file-name’). A recursive minibuffer is used to perform the completion. The result of completing is inserted at point in the parent minibuffer, without replacing any other text that might already be there.

You can use this feature to add multiple file or directory names to the same minibuffer input. In this way, for instance, you can use it to add particular file or directory names as arguments to a shell command that you input in the minibuffer. By default, a relative name is inserted, but if you use a prefix argument then the directory component is included.

Similarly, you can use ‘C-M-C’, that is, ‘C-M-S-c’ (`icicle-completing-read+insert’), to invoke non file-name completion. This, however, is available only if the command reading from the minibuffer allows it, by defining a set of possible completions.

The actual keys used for on-demand completion are customizable, using options `icicle-read+insert-file-name-keys’ and `icicle-completing-read+insert-keys’. The default values are ‘C-M-S-f’ and ‘C-M-S-c’.

Another kind of on-demand completion is provided by minibuffer multi-command ‘icicle-insert-history-element’ (‘M-o’). This is always available in the minibuffer, regardless of whether input is being read with completion. It lets you use completion to insert any number of entries from the current minibuffer history into the minibuffer at point. See Using Completion to Insert Previous Inputs: `M-o'.


Previous: Icicles - Regressive CompletionIciclesIciclesIndexNext: Icicles - Moving Between the Minibuffer and Other Buffers

DrewsElispLibraries referenced here: Lisp:icicles.el

CategoryCommands CategoryBufferSwitching CategoryCompletion