A community-driven vim distribution

Home | About | Documentation | Development | Community | Sponsors

Available Layers » autocomplete


This layer provides auto-completion to SpaceVim.

The following completion engines are supported:

Snippets are supported via neosnippet.


To use this configuration layer, add following snippet to your custom configuration file.

  name = "autocomplete"


Choose which completion engine to be used

You can choose the completion engine (among the supported ones) to be used with the following variable:

Key bindings

You can customize the user experience of auto-completion with the following layer variables:

  1. 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 selection
    • smart completes with current selection and expand snippet or argvs
    • nil By default it is complete.
  2. 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 parameters
    • complete completes with the current selection
    • cycle completes the common prefix and cycle between candidates
    • nil insert a carriage return By default it is complete.
  3. auto-completion-delay is a number to delay the completion after input in milliseconds, by default it is 50 ms.
  4. 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.
  5. 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:

  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:

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


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


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

Hosted on GitHub, Help improve this page — Theme by mattgraham,