It applies to the editing styles: - hybrid with the variable hybrid-style-enable-hjkl-bindings set to t - vim Moved the default key binding for ivy-switch-buffer-kill: From: C-k To: C-M-k Thanks for the suggestion: asok
5.2 KiB
Ivy layer
Description
This layer enables Ivy for completion. It will replace the default completion by Helm.
These completion systems are the central control towers of Spacemacs, they are used to manage buffers, projects, search results, configuration layers, toggles and more…
Mastering your choice of completion system will make you a Spacemacs power user.
Features:
- Project wide
grep
like text search viasearch-auto
- Project wide text replacements using
counsel-imenu
- Buffer wide dynamic text search via
swiper
- Detailed configuration parameters for ivy appearance
- Intuitive
transient state
- Advanced buffer information with
ivy-rich
Install
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add ivy
to the existing dotspacemacs-configuration-layers
list in this
file.
Configuration
General
You can customize ivy with the following variables:
ivy-wrap
WhetherC-n
andC-p
should wrap-around when at the first or last candidate. The default value isnil
.ivy-extra-directories
Setting this tonil
hides . and .. directories from file name completion. You can still go up a directory up byDEL
. The default value is ("../", "./").ivy-use-virtual-buffers
Add bookmarks and recent files to buffer completion menu. The Spacemacs default is t.ivy-height
The height of the minibuffer. The Spacemacs default is 15.ivy-use-selectable-prompt
When non-nil, make the prompt line selectable like a candidate. The Spacemacs default value ist
.ivy-re-builders-alist
An alist of regex building functions for each collection function. See ivy documentation for possible choices. Usespacemacs/ivy--regex-plus
instead ofivy--regex-plus
to get correct highlighting in the search results ofspacemacs/search-project-auto
and similar search commands provided by Spacemacs.ivy-ret-visits-directory
WhetherRET
andC-j
should be swapped in ivy minibuffer soRET
acts like Ido and descends into directory. It is described here (probably outdated). Default value isnil
.
Advanced buffer information
To display more information about buffers set the layer variable
ivy-enable-advanced-buffer-information
to t
which will enable ivy-rich
.
Note that ivy-rich
has been reported to be very slow on macOS
. This feature
is disabled by default.
(setq-default dotspacemacs-configuration-layers '(
(ivy :variables ivy-enable-advanced-buffer-information t)))
Key bindings
If you choose ivy
as completion system, make sure to read the official manual.
In case you don't want to read everything, at least familiarise with
minibuffer key bindings.
Some useful key bindings are presented in the following table.
Key binding | Description |
---|---|
RET |
call default action on current candidate |
M-RET |
the same as RET but doesn't close completion minibuffer |
C-M-j |
use current input immediately (this can be used to create a new file in Find File) |
TAB |
complete partially |
M-o |
show the list of valid actions on current candidate (then press any of described keys to execute it) |
C-M-o |
the same as M-o but doesn't close completion minibuffer |
C-' |
use avy to quickly select completion on current page (sometimes faster than using arrows) |
<ESC> |
close minibuffer |
C-M-k |
kill buffer (in ivy-switch-buffer (SPC b b )) |
Transient state
Press M-SPC
anytime in Ivy to get into the transient state.
Key binding | Description |
---|---|
j |
select next candidate |
k |
select previous candidate |
d |
call default action on candidate |
g |
the same as d but doesn't close completion minibuffer |
o |
leave transient state |