Skip to content

🌠 Dark powered asynchronous completion framework for neovim/Vim8


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


Dark powered asynchronous completion framework for neovim/Vim8

Note: The development of this plugin is finished. Accepts minor patches and issues but no new features. ddc.vim is the next generation auto completion plugin. Consider migrating to it.

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.2.1978+ 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

Vim >= 8 built-in package manager (not recommended)

  1. Clone the repo in a package (e.g. $XDG_CONFIG_HOME/nvim/pack/dist/start, where dist is the name of the package)

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

  3. Inside NeoVim, call :UpdateRemotePlugins


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