SpaceVim
A modular Vim/Neovim configuration
Home | About | Quick start guide | Documentation | Development | Community | Sponsors | 中文
This layer provides auto-completion in SpaceVim.
The following completion engines are supported:
+lua
+lua
+python3
:h g:spacevim_enable_ycm
+python
or +python3
timers
Snippets are supported via neosnippet.
To use this configuration layer, add the following snippet to your custom configuration file:
[[layers]]
name = "autocomplete"
By default, SpaceVim will choose the completion engine automatically based on your vim version. But you can choose the completion engine to be used with the following variable:
autocomplete_method
: the possible values are:
ycm
: for YouCompleteMeneocomplcache
coc
: coc.nvim which also provides language server protocol featuredeoplete
asyncomplete
completor
nvim-cmp
here is an example:
[options]
autocomplete_method = "deoplete"
The default snippets engine is neosnippet
, the also can be changed to ultisnips
:
[options]
snippet_engine = "ultisnips"
The following snippets repos have been added by default:
If the snippet_engine
is neosnippet
, the following directories will be used:
~/.SpaceVim/snippets/
: SpaceVim runtime snippets.~/.SpaceVim.d/snippets/
: custom global snippets../.SpaceVim.d/snippets/
: custom local snippets (project’s snippets)You can provide additional directories by setting the
variable g:neosnippet#snippets_directory
which can take a string
in case of a single path or a list of paths.
If the snippet_engine
is ultisnips
, the following directories will be used:
~/.SpaceVim/UltiSnips/
: SpaceVim runtime snippets.~/.SpaceVim.d/UltiSnips/
: custom global snippets../.SpaceVim.d/UltiSnips/
: custom local snippets (project’s snippets)By default, the parens will be completed automatically, to disabled this feature:
[options]
autocomplete_parens = false
You can customize the user experience of autocompletion with the following layer variables:
auto_completion_return_key_behavior
set the action to perform
when the Return
/Enter
key is pressed. the possible values are:
complete
completes with the current selectionsmart
completes with current selection and expand snippet or argvsnil
By default it is complete
.auto_completion_tab_key_behavior
set the action to
perform when the TAB
key is pressed, the possible values are:
smart
cycle candidates, expand snippets, jump parameterscomplete
completes with the current selectioncycle
completes the common prefix and cycle between candidatesnil
insert a carriage return
By default it is complete
.auto_completion_delay
is a number to delay the completion after input in milliseconds,
by default it is 50 ms.auto_completion_complete_with_key_sequence
is a string of two characters denoting
a key sequence that will perform a complete
action if the sequence as been entered
quickly enough. If its value is nil
then the feature is disabled.
NOTE: This option should not has same value as escape_key_binding
auto_completion_complete_with_key_sequence_delay
is the number of seconds to wait for
the autocompletion key sequence to be entered. The default value is 1 seconds.
This option is used for vim’s timeoutlen
option in insert mode.The default configuration of the layer is:
[[layers]]
name = "autocomplete"
auto_completion_return_key_behavior = "nil"
auto_completion_tab_key_behavior = "smart"
auto_completion_delay = 200
auto_completion_complete_with_key_sequence = "nil"
auto_completion_complete_with_key_sequence_delay = 0.1
jk
is a good candidate for auto_completion_complete_with_key_sequence
if you don’t use it already.
By default, snippets are shown in the auto-completion popup.
To disable this feature, set the variable auto_completion_enable_snippets_in_popup
to false.
[[layers]]
name = "autocomplete"
auto_completion_enable_snippets_in_popup = false
Key bindings | Description |
---|---|
Ctrl-n |
select next candidate |
Ctrl-p |
select previous candidate |
<Tab> |
based on auto_completion_tab_key_behavior |
Shift-Tab |
select previous candidate |
<Return> |
based on auto_completion_return_key_behavior |
Key Binding | Description |
---|---|
M-/ |
Expand a snippet if text before point is a prefix of a snippet |
SPC i s |
List all current snippets for inserting |
<Leader> f s |
Fuzzy find Ultisnips snippets if snippet_engine = "ultisnips" and the layer telescope is used. Thanks to telescope-ultisnips.nvim |
NOTE: SPC i s
requires that at least one fuzzy search layer be loaded. If the snippet_engine
is neosnippet
.
The fuzzy finder layer can be leaderf
, denite
or unite
. For ultisnips
, you can use leaderf
or unite
layer.
Powered by Jekyll