* Doc: fix typos. * Doc: make the translation more accurate. * Doc: update documentations. * Doc: translate <C-e> to Ctrl-e etc. * Doc: fix typos. * Doc: fix typos.
5.7 KiB
title | description |
---|---|
SpaceVim autocomplete layer | Autocomplete code within SpaceVim, fuzzy find the candidates from multiple completion sources, expand snippet before cursor automatically |
Available Layers >> autocomplete
Description
This layer provides auto-completion to SpaceVim.
The following completion engines are supported:
- neocomplete - vim with
+lua
- neocomplcache - vim without
+lua
- deoplete - neovim with
+python3
- coc - vim >= 8.1 or neovim >= 0.3.1
- YouCompleteMe - disabled by default, to enable ycm, see
:h g:spacevim_enable_ycm
- Completor - vim8 with
+python
or+python3
- asyncomplete - vim8 or neovim with
timers
Snippets are supported via neosnippet.
Install
To use this configuration layer, add following snippet to your custom configuration file.
[[layers]]
name = "autocomplete"
Configuration
Choose which completion engine to be used
You can choose the completion engine (among the supported ones) to be used with the following variable:
g:spacevim_autocomplete_method
: the possible values are:ycm
: for YouCompleteMeneocomplcache
coc
: Note that coc.nvim is also a language server protocol client. See lsp layer for more information.deoplete
asyncomplete
completor
Key bindings
You can customize the user experience of auto-completion with the following layer variables:
auto-completion-return-key-behavior
set the action to perform when theReturn
/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 iscomplete
.
auto-completion-tab-key-behavior
set the action to perform when theTAB
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 iscomplete
.
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 acomplete
action if the sequence as been entered quickly enough. If its value isnil
then the feature is disabled.auto-completion-complete-with-key-sequence-delay
is the number of seconds to wait for the auto-completion key sequence to be entered. The default value is 0.1 seconds.
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.
Snippets directories
The following snippets or directories are added by default:
- Shougo/neosnippet-snippets : neosnippet's default snippets.
- honza/vim-snippets : extra snippets
~/.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.
Show snippets in auto-completion popup
By default, snippets are shown in the auto-completion popup. To disable this feature, set the variable auto-completion-enable-snippets-in-popup
to 0.
call SpaceVim#layers#load('autocomplete', {
\ 'auto-completion-enable-snippets-in-popup' : 0
\ })
LSP supported
Key bindings
auto-complete
Key bindings | Description |
---|---|
Ctrl-n |
select next candidate |
Ctrl-p |
select previous candidate |
<Tab> |
base on auto-completion-tab-key-behavior |
Shift-Tab |
select previous candidate |
<Return> |
base on auto-completion-return-key-behavior |
Neosnippet
Key Binding | Description |
---|---|
M-/ |
Expand a snippet if text before point is a prefix of a snippet |
SPC i s |
List all current yasnippets for inserting |