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 +python3timersSnippets 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 YouCompleteMeneocomplcachecoc: coc.nvim which also provides language server protocol featuredeopleteasyncompletecompletornvim-cmphere 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_bindingauto_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