Home

Awesome

deoplete.nvim

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 https://gitter.im/Shougo/deoplete.nvim 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.

<!-- vim-markdown-toc GFM --> <!-- vim-markdown-toc -->

Install

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. https://github.com/msgpack/msgpack-python

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

https://github.com/Shougo/deoplete.nvim/releases/tag/5.2

For vim-plug

if has('nvim')
  Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
  Plug 'Shougo/deoplete.nvim'
  Plug 'roxma/nvim-yarp'
  Plug 'roxma/vim-hug-neovim-rpc'
endif
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')
endif
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

Requirements

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. https://github.com/deoplete-plugins/deoplete-jedi/wiki/Setting-up-Python-for-Neovim

Configuration

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

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

Screenshots

Deoplete for JavaScript https://www.youtube.com/watch?v=oanoPTpiSF4

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

Typescript

Javascript

Css, scss, sass

Html

My custom snippets

C++ with cquery lang server

Rust using rls

Ruby dictionary completion

LanguageClient-neovim integration