Skip to content
Switch branches/tags


Dark powered asynchronous completion framework for neovim/Vim8

Build Status Join the chat at Doc

Please read help for details.

Note: If you need to understand what's different between deoplete and other similar plugins, please read "deoplete-faq" section in the documentation.

Deoplete is the abbreviation of "dark powered neo-completion". It provides an extensible and asynchronous completion framework for neovim/Vim8.

deoplete will display completions via complete() by default.

Here are some completion sources specifically made for deoplete.nvim.


Note: deoplete requires Neovim (0.3.0+ and of course, latest is recommended) or Vim8.1 with Python 3.6.1+ and timers enabled. See requirements if you aren't sure whether you have this.

Note: deoplete requires msgpack package 1.0.0+. Please install/upgrade msgpack package by pip.

Note: If you really need to use older msgpack, please use deoplete ver.5.2 instead.

For vim-plug

if has('nvim')
  Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
  Plug 'Shougo/deoplete.nvim'
  Plug 'roxma/nvim-yarp'
  Plug 'roxma/vim-hug-neovim-rpc'
let g:deoplete#enable_at_startup = 1

For dein.vim

call dein#add('Shougo/deoplete.nvim')
if !has('nvim')
  call dein#add('roxma/nvim-yarp')
  call dein#add('roxma/vim-hug-neovim-rpc')
let g:deoplete#enable_at_startup = 1

For manual installation(not recommended)

  1. Extract the files and put them in your Neovim or .vim directory (usually $XDG_CONFIG_HOME/nvim/).

  2. Write call deoplete#enable() or let g:deoplete#enable_at_startup = 1 in your init.vim


deoplete requires Neovim or Vim8 with if_python3.

If :echo has("python3") returns 1, then you have python 3 support; otherwise, see below.

You can enable Python3 interface with pip:

pip3 install --user pynvim

Please install nvim-yarp and vim-hug-neovim-rpc for Vim8.

Note: Python3 must be enabled before updating remote plugins

If Deoplete was installed prior to Python support being added to Neovim, :UpdateRemotePlugins should be executed manually in order to enable auto-completion.

Note: deoplete needs pynvim ver.0.3.0+.

You need update pynvim module.

pip3 install --user --upgrade pynvim

If you want to read the Neovim-python/python3 interface install documentation, you should read :help provider-python and the Wiki.


" Use deoplete.
let g:deoplete#enable_at_startup = 1

See :help deoplete-options for a complete list of options.


Deoplete for JavaScript

File Name Completion

Omni Completion

Neosnippets and neco-ghc integration

deoplete + echodoc integration

deoplete + deoplete-go integration

deoplete + deoplete-typescript integration

Python completion using deoplete-jedi

C++ completion using clang_complete

Java completion using vim-javacomplete2

Vim Script completion using neco-vim

C# completion using deoplete-omnisharp

Register/Extract list completions

FSharp completion using deopletefs



Css, scss, sass


My custom snippets

C++ with cquery lang server

Rust using rls

Ruby dictionary completion

LanguageClient-neovim integration