| Previous: Icicles - File-Name Completion Tips | Icicles | IciclesIndex | Next: Icicles - Customizing Key Bindings |
You can easily customize any of the key bindings that Icicles uses – see Icicles - Customizing Key Bindings. I recommend that you first try using the default bindings, however. There are many Icicles key bindings (in particular in the minibuffer), but they are grouped into a few natural sets, to help you remember them. And there are [[user_options?]] available for easy key customization.
Icicles does not change your global key bindings. It changes some minibuffer bindings, and it adds some minor-mode bindings for Icicle mode, but it does not change your global bindings.
There are two exceptions:
1. In Icicle mode, various Icicles commands are added to menu bar menus. File commands are added to the File menu, and so on, under an Icicles submenu. Those items that do not belong naturally to any existing menu-bar menu are added to a new top-level Icicles menu and to the existing Minibuf menu. Whatever the menu they appear in, however, Icicles menu items are visible only when Icicle mode is active.
If you do not want Icicles to add items to menus besides Minibuf and Icicles, then set option `icicle-touche-pas-aux-menus’ to non-‘nil’. See Icicles - Customizing Key Bindings.
2. Icicles adds the key ‘S-TAB’ (bound to ‘icicle-complete-keys’) to each existing keymap. This allows you to complete keys in any keymap. For technical reasons, these bindings are not part of ‘icicle-mode-map’; other keymaps are enhanced to include this binding. However, this Icicles binding of ‘S-TAB’ never replaces any existing binding of ‘S-TAB’. See Icicles - Key Completion for more information about this use of ‘S-TAB’.
(The documentation always refers to the key that performs key completion as ‘S-TAB’. Actually, it is ‘S-TAB’ only by default. You can Customize it, using option `icicle-key-complete-keys’.)
Most top-level Icicle-mode bindings are in the Icicles menu-bar menu. In addition, option `icicle-top-level-key-bindings’ causes Icicles to bind some keyboard keys to some top-level Icicles commands. Some of these take the place of similar, global bindings whenever you are in Icicle mode. Typically, these top-level commands are Icicles multi-command versions of vanilla Emacs commands.
You can customize option ‘icicle-top-level-key-bindings’ to specify the top-level Icicles commands that you want to bind, and the keys you want to bind them to.
Here is a screenshot of part of the Customize buffer for option ‘icicle-top-level-key-bindings’, to give you an idea. You use INS to insert another binding and DEL to delete a binding. You type the key sequence you want in the Key field and its command in the Command field. As an alternative to specifying a key, you can choose Command to remap in the Value Menu and then enter the command you want to remap.
With the default value of ‘icicle-top-level-key-bindings’, Icicles makes the following Icicle-mode bindings:
C-c '’ – `icicle-occur'C-c =’ – `icicle-imenu'C-c ^’ – `icicle-search-keywords'C-c "’ – `icicle-search-text-propertyC-c $’ – `icicle-search-wordC-c `’ – `icicle-search'C-c `’ – `icicle-compilation-search' (in ‘*grep*’ etc.)C-c `’ – `icicle-comint-search' (in ‘*shell*’ etc.)‘C-c TAB’ – `icicle-comint-command' (in ‘*shell*’ etc.)‘C-c /’ – `icicle-complete-thesaurus-entry'‘C-h C-o’ – `icicle-describe-option-of-type'‘ESC M-x’ – `lacarte-execute-command'M-`’, ‘f10’ – `lacarte-execute-menu-command'‘M-x’ – `icicle-execute-extended-command'‘C-x SPC’ – `icicle-command-abbrev'‘C-x M-e’ – ‘icicle-execute-named-keyboard-macro’‘S-f4’ – ‘icicle-kmacro’‘pause’ – `icicle-switch-to/from-minibuffer'‘C-x 5 o’ – ‘icicle-select-frame’ ‘S-TAB’ is bound, in effect, to `icicle-complete-keys', which completes a key sequence. Prefix keys followed by ‘S-TAB’ are also bound to ‘icicle-complete-keys’. (‘S-TAB’ is effectively bound to other commands in buffer ‘*Completions*’ and in the minibuffer.)
(The documentation always refers to the key that performs key completion as ‘S-TAB’. Actually, it is ‘S-TAB’ only by default. You can customize it, using option `icicle-key-complete-keys’.)
When ‘icicle-top-level-key-bindings’ has its default value, Icicles also substitutes all of the key bindings for some standard Emacs commands. For example, Icicles binds ‘icicle-buffer’ to all keys that are globally bound outside Icicle mode to standard command ‘switch-to-buffer’. By default, the following standard commands have their bindings co-opted this way by Icicles commands:
Standard Command Icicles Command
`abort-recursive-edit'.............`icicle-abort-recursive-edit' (`C-]') `bookmark-jump'....................`icicle-bookmark' (`C-x r b') `bookmark-jump-other-window'.......`icicle-bookmark-other-window' (`C-x j j') `bookmark-set'.....................`icicle-bookmark-cmd' (`C-x r m'') `dabbrev-completion'...............`icicle-dabbrev-completion' (`C-M-/') `delete-window'....................`icicle-delete-window' (`C-x 0') `dired'............................`icicle-dired' (`C-x d') `dired-other-window'...............`icicle-dired-other-window' (`C-x 4 d') `eval-expression'..................`icicle-pp-eval-expression' (`M-:') `exchange-point-and-mark'..........`icicle-exchange-point-and-mark' (`C-x C-x') `execute-extended-command'.........`icicle-execute-extended-command' (`M-x') `find-file'........................`icicle-file' (`C-x C-f') `find-file-other-window'...........`icicle-file-other-window' (`C-x 4 f') `find-file-read-only'..............`icicle-find-file-read-only' (`C-x C-r') `find-file-read-only-other-window'.`icicle-find-file-read-only-other-window' (`C-x 4 r') `find-tag'.........................`icicle-find-tag' (`M-.') `find-tag-other-window'............`icicle-find-first-tag-other-window' (`C-x 4 .') `Info-goto-node'...................`icicle-Info-goto-node' (`g') `Info-index'.......................`icicle-Info-index' (`i') `Info-menu'........................`icicle-Info-menu' (`m') `insert-buffer'....................`icicle-insert-buffer' (`C-S-insert') `kill-buffer'......................`icicle-kill-buffer' (`C-x k') `lisp-complete-symbol'.............`icicle-lisp-complete-symbol' (`M-TAB') `other-frame'......................`icicle-select-frame' (`C-x 5 o') `other-window'.....................`icicle-select-window-or-frame' (`C-x o') `pop-global-mark'..................`icicle-goto-global-marker-or-pop-global-mark' (`C-x C-SPC') `pop-tag-mark'.....................`icicle-pop-tag-mark' (`M-*') `pp-eval-expression'...............`icicle-pp-eval-expression' (`M-:') `set-mark-command'.................`icicle-goto-marker-or-set-mark-command' (`C-SPC') `switch-to-buffer'.................`icicle-buffer' (`C-x b') `switch-to-buffer-other-window'....`icicle-buffer-other-window' (`C-x 4 b') `where-is'.........................`icicle-where-is' (`C-h w') `yank'.............................`icicle-yank-maybe-completing' (`C-y') `yank-pop'.........................`icicle-yank-pop-commands' (`M-y')
Actually, by default, Icicles binds ‘icicle-yank-maybe-completing’ to whatever the value of option `icicle-yank-function’ is. By default, this value is ‘yank’.
Option ‘icicle-top-level-key-bindings’ remaps not only these standard Emacs commands but also some commands provided by other libraries. For example, if you use package Bookmark+, then type-specific bookmark jump commands such as ‘bookmarkp-dired-jump-other-window’ are remapped to Icicles multi-command versions.
In addition, option `icicle-functions-to-redefine’ redefines some vanilla functions to their Icicles versions while in Icicle mode. Any redefined functions that are bound to keys keep those bindings. For example, ‘Info-index’ is by default redefined to ‘icicle-Info-index’ in Icicle mode, so ‘i’ in InfoMode is effectively bound to ‘icicle-Info-index’. Commands listed in option ‘icicle-functions-to-redefine’ are typically bound in keymaps other than the global map.
There are many Icicles commands that are not bound to any keys by default. You might want to bind some of them to keys in keymap ‘icicle-mode-map’, i.e., in Icicle mode. For a list of top-level Icicles commands, see the ‘Commentary’ headers of files icicles-cmd1.el and icicles-cmd2.el.
There are many key bindings available while your input is read in the minibuffer, for example, while you are editing it. Some of these keys are available regardless of whether completion is available for your input.
Others are available only during completion. Most of those keys are bound in the minibuffer keymaps, but some are bound in the ‘*Completions*’ buffer keymap.
In addition, clicking ‘C-mouse-3’ on a completion candidate in buffer ‘*Completions*’ pops up a menu of available commands. Some of these menu commands are applicable to the completion you click; others apply to the current state of completion or to the complete set of completion candidates. The associated key bindings are indicated in the menu items, so this can be a good way to learn minibuffer and ‘*Completions*’ bindings.
You can easily customize the Icicles minibuffer and ‘*Completions*’ buffer key bindings. There are several user options available for this. This section describes the keys that are bound by default. Section Icicles - Customizing Key Bindings describes the options available for customizing them. The keys described in this section are those bound by default.
The following key is helpful during any minibuffer input. It pops up the ‘*Help*’ buffer with information about using the minibuffer in Icicle mode. During completion, this includes information similar to what you are reading now. It also lists toggle commands and the current toggle values.
M-?’ – ‘icicle-minibuffer-help’The following key will always cancel all minibuffer input. No matter whether you have recursive minibuffers, it always returns you directly to the Emacs top level.
‘C-M-T’ (aka ‘C-M-S-t’) – ‘icicle-top-level’The following key bindings are made for the minibuffer completion keymaps. They are in effect whenever you are using the minibuffer for input with completion (e.g. ‘completing-read’, ‘read-file-name’, ‘M-x’).
The keys mentioned are those that are bound by default and used in the documentation, but you can customize any or all of them using option `icicle-completion-key-bindings’.
‘down’, ‘wheel-down’ – ‘icicle-next-candidate-per-mode’ (modal)‘up’, ‘wheel-up’ – ‘icicle-previous-candidate-per-mode’ (modal)‘next’, ‘prior’ – ‘icicle-next-apropos-candidate’, ‘icicle-previous-apropos-candidate’, which cycle candidate apropos completions.‘down’, ‘up’ – ‘icicle-next-prefix-candidate’, ‘icicle-previous-prefix-candidate’, which cycle candidate prefix completions.‘TAB’ and ‘S-TAB’ was used last, or by option `icicle-default-cycling-mode’ if neither was used.‘down’, ‘up’, ‘next’, ‘prior’, ‘end’, and ‘home’. Actually, these are the cycling keys only by default. You can customize the cycling keys using options `icicle-modal-cycle-down-keys’, `icicle-modal-cycle-up-keys’, `icicle-apropos-cycle-next-keys’, `icicle-apropos-cycle-previous-keys’, `icicle-prefix-cycle-next-keys’, `icicle-prefix-cycle-previous-keys’.)‘self-insert-command’ – are bound to Icicles versions of those commands that do the same thing but also provide apropos icompletion. This includes keys such as ‘C-d’, ‘C-k’, and ‘C-w’ (and lots more). See Icicles - Icompletion.‘pause’ – ‘icicle-switch-to/from-minibuffer’: Move cursor to the buffer from which the minibuffer was activated.‘C-insert’ – ‘icicle-switch-to-Completions-buf’: Move cursor to the current candidate in buffer ‘*Completions*’.‘C-v’ – ‘icicle-scroll-Completions-forward’: Scroll the ‘*Completions*’ window forward‘M-v’ – ‘icicle-scroll-Completions-backward’: Scroll the ‘*Completions*’ window backward‘C-M-v’ – ‘icicle-scroll-forward’: Scroll the current non-minibuffer window forward‘C-M-V’ (‘C-M-S-v’) – ‘icicle-scroll-backward’: Scroll the current non-minibuffer window backward‘M-*’ – ‘icicle-narrow-candidates’: Narrow the set of completion candidates using another input regexp.M-+’ – ‘icicle-widen-candidates’: Widen the set of completion candidates using another input regexp.‘M-SPC’ – ‘icicle-prefix-word-complete’: Complete current input in minibuffer, as a prefix, a single word at a time. This replaces ‘minibuffer-complete-word’. In fact, it is the keys in ‘icicle-word-completion-keys’ that are bound to this command; ‘M-SPC’ is by default.‘S-SPC’ – ‘icicle-apropos-complete-and-narrow’: Same as ‘S-TAB’ followed by ‘M-*’.‘S-backspace’ – ‘icicle-apropos-complete-and-widen’: Same as ‘S-TAB’ followed by `M-+’.‘TAB’ – ‘icicle-prefix-complete’: Complete current input in minibuffer, as a prefix. If there is more than one prefix completion candidate, display them in buffer ‘*Completions*’, highlighting the common prefix. This replaces ‘minibuffer-complete’. (The documentation always refers to the key that does this as ‘TAB’. Actually, it is only ‘TAB’ by default. You can customize it, using option `icicle-prefix-complete-keys’.)‘S-TAB’ – In the minibuffer: ‘icicle-apropos-complete’ – like ‘TAB’, but use apropos completion. In buffer ‘*Completions*’: ‘icicle-move-to-previous-completion’ – move backwards among candidates. At top level: ‘icicle-complete-keys’ – complete a key sequence. (The documentation always refers to the keys that do these things as ‘S-TAB’. Actually, they are only ‘S-TAB’ by default. You can customize the keys using options `icicle-apropos-complete-keys’, `icicle-completion-list-key-bindings’, and `icicle-key-complete-keys’.)‘C-M-TAB’ – ‘icicle-prefix-complete-no-display’: Like ‘TAB’, but does not display candidates in ‘*Completions*’. (The documentation always refers to the key that does this as ‘C-M-TAB’. Actually, it is only ‘C-M-TAB’ by default. You can customize it, using option `icicle-prefix-complete-no-display-keys’.) During Isearch, ‘C-M-TAB’ and ‘M-TAB’ complete the search string against past search strings. (These are the keys by default. You can customize this using option `icicle-isearch-complete-keys’.)‘C-M-S-TAB’ – ‘icicle-apropos-complete-no-display’: Like ‘S-TAB’, but does not display candidates in ‘*Completions*’. (The documentation always refers to the key that does this as ‘C-M-S-TAB’. Actually, it is only ‘C-M-S-TAB’ by default. You can customize it, using option `icicle-apropos-complete-no-display-keys’.)C-M-&’ – ‘icicle-save-predicate-to-variable’: Save the current predicate used for completion to a variable.‘delete’ – ‘icicle-remove-candidate’: Remove the current candidate from consideration.‘S-mouse-2’ – ‘icicle-mouse-remove-candidate’: Same as ‘delete’ key.‘M-o’ – ‘icicle-insert-history-element’: Invoke completion to insert a previously entered input into the minibuffer. Use this instead of the ‘M-s’ and ‘M-r’ of vanilla Emacs, which are not available in Icicle mode. (‘M-o’ is the key by default. You can customize this using option `icicle-minibuffer-key-bindings’.) During Isearch, ‘M-o’ completes against the current search ring, and appends the past search string you choose to the current one. (‘M-o’ is the key by default. You can customize this using option `icicle-isearch-history-insert-keys’.)‘M-q’ – ‘icicle-insert-key-description’: Insert the textual representation of a key sequence, during key completion.‘M-r’ – ‘icicle-roundup’: Insert one or more completion candidates in the minibuffer.‘M-R’ – ‘icicle-multi-inputs-act’: Act on multi-inputs. Parse minibuffer input into a list of candidates, then act on each candidate, in order.‘M-S’ – ‘icicle-multi-inputs-save’: Add multi-inputs to the current saved candidates set. Parse minibuffer contents into a list of candidates, then add them to those in ‘icicle-saved-completion-candidates’.M-%’ – Regexp quote current input or its active region, then apropos-complete. Use this to literally match all or some input, in the context of regexp matching overall.‘C-M-F’ (‘C-M-S-f’) – `icicle-read+insert-file-name’: Invoke completion to insert a file name in the minibuffer.‘C-M-C’ (‘C-M-S-c’) – `icicle-completing-read+insert’: Invoke completion to insert something other than a file name (not always available). (‘C-M-F’ and ‘C-M-C’ are the default values for the keys that invoke completion on demand. You can customize the keys to use, using options `icicle-read+insert-file-name-keys’ and `icicle-completing-read+insert-keys’.)By default, ‘TAB’ and ‘S-TAB’ also perform modal candidate cycling when you repeat them. You can inhibit this feature by customizing option `icicle-TAB/S-TAB-only-completes-flag’.
In Icicles, multi-line completion candidates are not uncommon. You can move up and down minibuffer lines with ‘C-p’ and ‘C-n’, and you can use the following keys to move among line beginnings and ends:
‘C-a’, ‘C-e’ – `icicle-beginning-of-line+’, `icicle-end-of-line+’: Like normal ‘C-a’, ‘C-e’, but repeating goes to the previous or next line.If you use libraries fit-frame.el and oneonone.el with a standalone minibuffer frame (non-‘nil’ ‘1on1-minibuffer-frame-flag’), and if option ‘1on1-fit-minibuffer-frame-flag’ is non-‘nil’, then the minibuffer frame is automatically resized to fit its content as you edit that content. (Options ‘1on1-fit-minibuffer-frame-max-height’ and ‘1on1-fit-minibuffer-frame-max-height-percent’ define the maximum height for this.)
If, in addition, you bind ‘1on1-fit-minibuffer-frame’ to a key, then you can use that key repeatedly to increase the height by one line, even beyond the maximum. Library setup-keys.el binds this to ‘C-o’.
(If you do not use a separate minibuffer frame, then you will likely want to set standard option ‘resize-mini-windows’ to ‘t’, not to ‘grow-only’, at least while in Icicle mode.)
‘C-M-j’ – ‘icicle-insert-list-join-string’: Insert ‘icicle-list-join-string’. See also Icicles - Multi-Completions. You can insert a single Icicles multi-line dot using `C-u .’, or by turning on this dot magic generally, using `C-M-.’:
.’ – ‘icicle-insert-dot-command’C-M-.’ – ‘icicle-toggle-dot’ (toggle option `icicle-dot-string’)In vanilla Emacs, the following keys have a special purpose during input completion, but in Icicles they simply insert the character typed – they are self-inserting. This is because (1) there are better ways to do what vanilla Emacs uses these keys for and (2) it is useful to be able to insert these characters without first typing ‘C-q’ to quote them.
?’ – see also Icicles - Special Characters in Input Patterns‘SPC’ (space)‘C-j’ (newline) – see also ‘C-o’, above, and Icicles - Multi-CompletionsThe following minibuffer bindings are made to clear minibuffer input, making them handy for editing and removing completions (e.g. default or initial values) in the minibuffer.
‘M-k’ – ‘icicle-erase-minibuffer-or-history-element’‘M-S-backspace’, ‘M-S-delete’ – ‘icicle-erase-minibuffer’‘M-k’ has an alternative behavior when you are cycling minibuffer history items: it deletes the current item from the history.
The following key is bound during completion to control the display of thumbnail images in ‘*Completions*’ for candidates that name image files or image-file bookmarks (see Bookmark+). It cycles the value of option `icicle-image-files-in-Completions’ to show images and names (the default), show only names, or show only images.
‘C-x t’ – ‘icicle-cycle-image-file-thumbnail’During (absolute or relative) file-name completion, the following minibuffer bindings are also in effect:
‘C-backspace’ – ‘icicle-up-directory’: Navigate up the directory hierarchy.C-c +’ – ‘icicle-make-directory’: Create a directory.‘C-x m’ – ‘icicle-bookmark-file-other-window’: Visit a file or directory (Dired) bookmark. See also Accessing Saved Locations (Bookmarks) on the Fly. (Available only if you use Bookmark+.)During some absolute file-name completion, you can use ‘C-c C-d’ to change the current directory on the fly (think UNIX command ‘cd’). See also Absolute File Names and Different Directories.
During buffer-name completion, the following additional minibuffer bindings are defined by user option `icicle-buffer-candidate-key-bindings’. By default, they are the following:
‘C-x m’ – ‘icicle-bookmark-non-file-other-window’: Visit a buffer (non-file) bookmark. See also Accessing Saved Locations (Bookmarks) on the Fly. (Available only if you use Bookmark+.)‘C-x C-m -’ – ‘icicle-remove-buffer-cands-for-derived-mode’: Remove buffer-name candidates with a major mode that is derived from a given mode. Repeat to filter progressively. (‘C-m’ is the same key as ‘RET’.)C-x C-m +’ – ‘icicle-keep-only-buffer-cands-for-derived-mode’: Keep only buffer-name candidates with a major mode that is derived from a given mode.‘C-x M -’ – ‘icicle-remove-buffer-cands-for-mode’: Same as ‘C-x C-m -’, but excludes ancestor modes.C-x M +’ – ‘icicle-keep-only-buffer-cands-for-mode’: Same as `C-x C-m +’, but excludes ancestor modes.‘C-x v -’ – ‘icicle-remove-buffer-cands-for-visible’: Remove buffers that are visible. Includes buffers in iconified frames.C-x v +’ – ‘icicle-keep-only-buffer-cands-for-visible’: Keep only buffers that are visible. Includes buffers in iconified frames.‘C-x F’ – Toggle whether to include cached files (i.e., toggle option `icicle-buffer-include-cached-files-nflag’)‘C-x R’ – Toggle whether to include recent files (i.e., toggle option `icicle-buffer-include-recent-files-nflag’)The following minibuffer binding moves the cursor to the start of the part of your input, if any, that is highlighted because it does not match any completion candidate (see option `icicle-highlight-input-completion-failure’). Repeating this command kills the rest of the line, removing the highlighted mismatched input.
‘C-M-l’ – ‘icicle-goto/kill-failed-input’The remaining input matches at least one candidate.
The following minibuffer bindings can be used to get rid of a completion inserted during cycling, and retrieve what you last typed during completion or any previous completion inputs:
‘C-l’ – ‘icicle-retrieve-previous-input’‘C-S-l’ (‘C-L’) – ‘icicle-retrieve-next-input’You can use these to cycle among and reuse inputs that you typed during completion but did not enter. This completion input is not recorded in the standard input histories – they record only input that you have entered with ‘RET’. See Icicles - History Enhancements.
For example, suppose that you used ‘C-h v hook’ to examine various hook variables, and you did this using‘C-next’ to display their documentation. If you finished the command by just typing ‘C-g’, then your input (‘hook’) was never really entered, so it is not available via the minibuffer history (‘M-p’). You can retrieve it with ‘C-l’, to use it again, in your next command. User option `icicle-C-l-uses-completion-flag’ controls the behavior of ‘C-l’ and ‘C-’L’; if non-‘nil’, then, instead of cycling inputs, these commands let you access previous inputs using completion.
You can insert minibuffer history items using the cycle keys ‘M-p’ and ‘M-n’, as usual. But in Icicle mode, ‘M-s’ and ‘M-r’ are not available. Instead, use ‘M-o’ to insert any history item using completion (including regexp completion, of course).
The following minibuffer bindings also let you use apropos completion on the current minibuffer history list. For explanation, see Icicles - History Enhancements.
‘M-h’ – ‘icicle-history’‘M-pause’ – ‘icicle-keep-only-past-inputs’Minibuffer binding ‘C-M-pause’ lets you use a different minibuffer history during the current input reading with completion. Normally, you are prompted for the history to use. Starting with Emacs 23, if option `icicle-populate-interactive-history-flag’ is non-‘nil’, then during command, abbrev, and keyboard-macro completion, ‘C-M-pause’ completes your input against the history of all commands that were invoked interactively in any way, ‘icicle-interactive-history’.
The following minibuffer bindings let you act on candidate completions. For explanation, see Icicles - Multi-Commands, Icicles - More About Multi-Commands, and Icicles - Choose All Candidates, and Icicles - Object-Action Interaction.
‘C-RET’ – ‘icicle-candidate-action’: current candidate‘C-mouse-2’ – ‘icicle-mouse-candidate-action’: clicked candidate‘C-down’, ‘C-wheel-down’ – ‘icicle-next-candidate-per-mode-action’ (modal)‘C-up’, ‘C-wheel-up’ – ‘icicle-previous-candidate-per-mode-action’ (modal)‘C-next’ – ‘icicle-next-apropos-candidate-action’‘C-prior’ – ‘icicle-previous-apropos-candidate-action’‘C-end’ – ‘icicle-next-prefix-candidate-action’‘C-home’ – ‘icicle-previous-prefix-candidate-action’C-!’ – ‘icicle-all-candidates-action’: each candidate, in turnM-!’ – ‘icicle-all-candidates-list-action’: all candidates, as a list‘M-RET’ – ‘icicle-candidate-read-fn-invoke’: apply a function to current candidate‘M-mouse-2’ – ‘icicle-mouse-yank-secondary’ (in minibuffer)‘M-mouse-2’ – ‘icicle-mouse-candidate-read-fn-invoke’: apply a function to clicked candidate (in ‘*Completions*’)‘S-delete’ – ‘icicle-delete-candidate-object’: delete object named by candidate(Some of these are only default key bindings. You can customize the keys to use for candidate actions, for instance. The mouse wheel bindings are only for Emacs 22 and later. The notation used here for the wheel bindings is that for Emacs on Windows; on other platforms different key notations are used for the wheel. This same note applies to corresponding keys used with modifiers ‘C-M-’ and ‘C-S-’ – see below.)
Except as noted, the bindings for ‘icicle-mouse-*’ are actually in the ‘*Completions*’ buffer.
The following minibuffer bindings provide help on candidate completions. For explanation, see Icicles - Help on Candidates and Icicles - Multi-Commands.
‘C-M-RET’ – ‘icicle-help-on-candidate’: current candidate‘C-M-mouse-2’ – ‘icicle-mouse-help-on-candidate’: clicked candidate‘C-M-down’, ‘C-M-wheel-down’ – ‘icicle-next-candidate-per-mode-help’ (modal)‘C-M-up’, ‘C-M-wheel-up’ – ‘icicle-previous-candidate-per-mode-help’ (modal)‘C-M-next’ – ‘icicle-help-on-next-apropos-candidate’‘C-M-prior’ – ‘icicle-help-on-previous-apropos-candidate’‘C-M-end’ – ‘icicle-help-on-next-prefix-candidate’‘C-M-home’ – ‘icicle-help-on-previous-prefix-candidate’(Again, these are only default key bindings. See Icicles - Customizing Key Bindings.)
The following minibuffer bindings provide an alternative action for individual candidates. The alternative action is specific to the given command. Most commands define no alternative action.
‘C-S-RET’ – ‘icicle-candidate-alt-action’: current candidate‘C-S-mouse-2’ – ‘icicle-mouse-candidate-alt-action’: clicked‘C-S-down’, ‘C-S-wheel-down’ – ‘icicle-next-candidate-per-mode-alt-action’ (modal)‘C-S-up’, ‘C-S-wheel-up’ – ‘icicle-previous-candidate-per-mode-alt-action’ (modal)‘C-S-next’ – ‘icicle-next-apropos-candidate-alt-action’‘C-S-prior’ – ‘icicle-previous-apropos-candidate-alt-action’‘C-S-end’ – ‘icicle-next-prefix-candidate-alt-action’‘C-S-home’ – ‘icicle-previous-prefix-candidate-alt-action’C-|’ – ‘icicle-all-candidates-alt-action’: each candidate, in turnM-|’ – ‘icicle-all-candidates-list-alt-action’: all candidates, as a listThe following minibuffer and ‘*Completions*’ buffer bindings let you perform set operations on sets of completion candidates. For explanation, see Icicles - Candidate Sets.
C-~’ – ‘icicle-candidate-set-complement’‘C--’ – ‘icicle-candidate-set-difference’C-+’ – ‘icicle-candidate-set-union’‘C-*’ – ‘icicle-candidate-set-intersection’C-M-<’ – ‘icicle-candidate-set-retrieve’: retrieve saved setC-M->’ – ‘icicle-candidate-set-save’: save current setC-M-)’ – ‘icicle-candidate-set-save-selected’: save mouse-selected candidates as setC-<’ – ‘icicle-candidate-set-retrieve-more’: add from saved setC->’ – ‘icicle-candidate-set-save-more’: add to saved setC-)’ – ‘icicle-candidate-set-save-more-selected’: add mouse-selected candidates to saved set‘insert’ – ‘icicle-save/unsave-candidate’: save or unsave current candidateC-%’ – ‘icicle-candidate-set-swap’: swap saved and current setsC-:’ – ‘icicle-candidate-set-define’: define current (EmacsLisp)‘M-S-mouse-2’ – ‘icicle-mouse-save/unsave-candidate’: click candidate to save or unsave‘M-S-mouse-3’ – ‘icicle-mouse-candidate-set-save’: save candidates in region or save clicked candidate‘M-mouse-3’ – ‘icicle-mouse-candidate-set-save-more’: add region candidates or clicked candidate to saved setThe following minibuffer bindings insert text in the minibuffer:
M-.’ – ‘icicle-insert-string-at-point’C-=’ – ‘icicle-insert-string-from-variable’M-:’ – ‘icicle-pp-eval-expression-in-minibuffer’ (with a prefix argument)The following minibuffer bindings let you toggle Icicles options or cycle among alternative Icicles behaviors.
‘C-A’ (that is, ‘C-S-a’) – ‘icicle-toggle-case-sensitivity’C-.’ – ‘icicle-toggle-ignored-extensions’ (file-name completion) (toggle option ‘completion-ignored-extensions’)C-.’ – ‘icicle-toggle-search-cleanup’ (search) (toggle option `icicle-search-cleanup-flag’)C-M-.’ – ‘icicle-toggle-dot’ (toggle option `icicle-dot-string’)C-x .’ – ‘icicle-toggle-hiding-common-match’ (toggle option `icicle-hide-common-match-in-Completions-flag’)C-u C-x .’ – ‘icicle-toggle-hiding-non-matching-lines’ (toggle option `icicle-hide-non-matching-lines-flag’)C-"’ – ‘icicle-toggle-expand-to-common-match’ (toggle option `icicle-expand-input-to-common-match’)C-M-"’ – ‘icicle-cycle-expand-to-common-match’ (cycle values of option `icicle-expand-input-to-common-match’)M-;’ – ‘icicle-toggle-search-replace-common-match’ (toggle option `icicle-search-replace-common-match-flag’)C-M-; – ‘icicle-toggle-icicle-toggle-ignoring-comments’ (toggle option `icicle-ignore-comments-flag’)C-,’ – ‘icicle-change-sort-order’ (next sort order in option `icicle-sort-orders-alist’)M-,’ – ‘icicle-change-alternative-sort-order’ (next alternative sort order)C-M-,’ – ‘icicle-toggle-alternative-sorting’ (swap with alternative)C-^’ – ‘icicle-toggle-remote-file-testing’ (toggle option `icicle-test-for-remote-files-flag’)C-^’ – ‘icicle-toggle-highlight-all-current’ (search) (toggle option `icicle-search-highlight-all-current-flag’)C-M-^’ – ‘icicle-toggle-completions-format’ (toggle option `icicle-toggle-completions-format’)‘icicle-cycle-incremental-completion’ (toggle option `icicle-incremental-completion-flag’)C-(’ – ‘icicle-next-TAB-completion-method’ (next method in option `icicle-TAB-completion-methods’)C-`’ – ‘icicle-toggle-regexp-quote’ (toggle option `icicle-regexp-quote-flag’)C-M-`’ – ‘icicle-toggle-literal-replacement’ (search) (toggle option `icicle-search-replace-literally-flag’)C-$’ – ‘icicle-toggle-transforming’: removal of duplicates (toggle option `icicle-transform-function’)‘C-pause’ – ‘icicle-toggle-highlight-historical-candidates’ (toggle option `icicle-highlight-historical-candidates-flag’)‘S-pause’ – ‘icicle-toggle-highlight-saved-candidates’ (toggle option `icicle-highlight-saved-candidates-flag’)‘M-g’ – ‘icicle-toggle-C-for-actions’ (toggle option `icicle-use-C-for-actions-flag’)‘M-q’ – ‘icicle-toggle-search-whole-word’ (search) (toggle option `icicle-search-whole-word-flag’)M-(’ – ‘icicle-next-S-TAB-completion-method’ (next method in option `icicle-S-TAB-completion-methods-alist’)M-~’ – `icicle-toggle-~-for-home-dir’ (toggle option `icicle-use-~-for-home-dir-flag’)M-_’ – ‘icicle-toggle-ignored-space-prefix’ (toggle option `icicle-ignore-space-prefix-flag’)M-_’ – ‘icicle-toggle-search-replace-whole’ (search) (toggle option `icicle-search-replace-whole-candidate-flag’)C-M-_’ – ‘icicle-toggle-proxy-candidates’ (toggle option `icicle-add-proxy-candidates-flag’) The following minibuffer bindings let you incrementally change options that affect the ‘*Completions*’ display columns and text size. To take advantage of these, you must also use DoReMi.
‘C-x w’ – `icicle-doremi-candidate-width-factor+’ (requires doremi.el) (increment option `icicle-candidate-width-factor’)C-x |’ – `icicle-doremi-inter-candidates-min-spaces+’ (requires doremi.el) (increment option `icicle-inter-candidates-min-spaces’)‘C-x -’ – `icicle-doremi-zoom-Completions+’ (requires doremi-frm.el and Emacs 23 or later)C-x #’ – increment/decrement option `icicle-max-candidates’When used in the minibuffer, the following Icicles global binding lets you remove the ‘*Completions*’ window.
‘C-x 0’ – ‘icicle-remove-Completions-window’The following minibuffer bindings are in effect during Icicles search:
C-.’ – ‘icicle-toggle-search-cleanup’ (toggle option `icicle-search-cleanup-flag’)C-,’ – ‘icicle-change-sort-order’ (next sort order in option `icicle-sort-orders-alist’)M-,’ – ‘icicle-search-define-replacement’M-;’ – ‘icicle-toggle-search-replace-common-match’ (toggle option `icicle-search-replace-common-match-flag’)‘M-q’ – ‘icicle-toggle-search-whole-word’ (toggle option `icicle-search-whole-word-flag’)C-^’ – ‘icicle-toggle-highlight-all-current’ (toggle option `icicle-search-highlight-all-current-flag’)C-M-`’ – ‘icicle-toggle-literal-replacement’ (toggle option `icicle-search-replace-literally-flag’)The following minibuffer binding lets you evaluate an EmacsLisp sexp at any time, using a recursive minibuffer. It displays the result of evaluation in the echo area or in a pop-up buffer, ‘*Pp Eval Output*’. With a prefix arg (`C-u M-:’), it inserts the result into the minibuffer at point.
M-:’ – ‘icicle-pp-eval-expression-in-minibuffer’Some additional bindings are made available in the minibuffer for ;the duration of specific commands:
‘C-x m’ lets you complete against bookmarks that have the same type as those objects (file bookmarks, buffer bookmarks, Dired bookmarks, Info bookmarks). This feature requires use of package Bookmark+.‘C-backspace’ is bound to ‘icicle-up-directory’, which navigates to the parent directory and completes there instead.‘C-M-’ are bound to commands that narrow the available candidates to bookmarks of a specific type. For example, ‘C-M-d’ narrows the choices to Dired bookmarks. The following bindings are made for ‘completion-list-mode’, that is, for buffer ‘*Completions*’, which shows the list of candidate completions:
‘left’, ‘right’ (‘TAB’) – ‘icicle-move-to-previous-completion’, ‘icicle-move-to-next-completion’: Navigate backward & forward among candidates.‘up’, ‘down’ – ‘icicle-previous-line’, ‘icicle-next-line’: Navigate up & down among candidates.‘C-insert’ – ‘icicle-insert-completion’: Move cursor to the minibuffer, with the current ‘*Completions*’ candidate as input.‘C-a’, ‘C-e’ – `icicle-beginning-of-line+’, `icicle-end-of-line+’ (repeatable)‘C-g’, ‘q’ – ‘icicle-abort-recursive-edit’‘C-M-T’ (aka ‘C-M-S-t’) – ‘icicle-top-level’‘mouse-2’ – ‘icicle-mouse-choose-completion’ (Emacs <23.2)‘C-mouse-2’ – ‘icicle-mouse-candidate-action’‘M-mouse-2’ – ‘icicle-mouse-candidate-read-fn-invoke’‘C-M-mouse-2’ – ‘icicle-mouse-help-on-candidate’‘M-S-mouse-2’ – ‘icicle-mouse-save/unsave-candidate’: click candidate to save or unsave‘C-mouse-3’ – ‘icicle-Completions-mouse-3-menu’‘M-mouse-3’ – ‘icicle-mouse-candidate-set-save-more’: add region candidates or clicked candidate to saved set‘M-S-mouse-3’ – ‘icicle-mouse-candidate-set-save’: save candidates in region or save clicked candidate‘wheel-down’ – ‘icicle-scroll-Completions-backward’‘wheel-up’ – ‘icicle-scroll-Completions-forward’| Previous: Icicles - File-Name Completion Tips | Icicles | IciclesIndex | Next: Icicles - Customizing Key Bindings |
DrewsElispLibraries referenced here: Lisp:icicles.el
CategoryKeys CategoryMenus CategoryCommands CategoryBufferSwitching CategoryCompletion CategoryRegexp CategoryDocumentation CategoryHelp CategoryRegion CategoryModes CategoryDirectories CategoryFiles CategoryProgrammerUtils CategoryCode