Skip to content


Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time
Jul 6, 2022
Mar 23, 2020
Mar 20, 2016
Mar 23, 2020


Note: Active development on denite.nvim has stopped. The only future changes will be bug fixes.

Please see ddu.vim.

Note: Denite.nvim does not define any of default mappings. You need to define them.

Please read help for details.


Join the chat at

Denite is a dark powered plugin for Neovim/Vim to unite all interfaces. It can replace many features or plugins with its interface. It is like a fuzzy finder, but is more generic. You can extend the interface and create the sources.

Some things you can do with it include:

  • Opening files

  • Switching buffers

  • Inserting the value of a register

  • Changing current directory

  • Searching for a string

Unite.vim was meant to be like Helm for Vim. But the implementation is ugly and it's very slow.

Denite resolves Unite's problems. Here are some of its benefits:

  • Theoretically faster because the main process is executed by Python

  • Theoretically more stable because no other processes can be performed when it runs.

  • The implementation is simpler than unite

  • Has greater potential to implement new features

  • Python3 is easier to work with than Vimscript

  • There are a lot of useful tools to keep code simple (linter, tester, etc...) in Python3.

  • Unite is officially obsolete, minor bugs (or even major bugs) are not fixed anymore


Denite requires Neovim 0.4.0+ or Vim 8.0+ with if_python3. If :echo has("python3") returns 1, then you're done.

Note: Please install/upgrade msgpack package (1.0.0+).

Note: You need to install Python 3.6.1+.

For neovim:

You must install "pynvim" module with pip

pip3 install --user pynvim

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

For Vim8:

Please install nvim-yarp plugin for Vim8.

Please install vim-hug-neovim-rpc plugin for Vim8.

You must install "pynvim" module with pip

pip3 install --user pynvim

For Windows users

  1. Install Vim from Vim Win32 Installer releases
  2. Download Python latest embeddable zip file and copy the all files in the zip file to the folder where you installed Vim.

Note: You need to do 1. and 2. with the common-arch files (x86 or x64).


For dein.vim

call dein#add('Shougo/denite.nvim')
if !has('nvim')
  call dein#add('roxma/nvim-yarp')
  call dein#add('roxma/vim-hug-neovim-rpc')

For vim-plug

if has('nvim')
  Plug 'Shougo/denite.nvim', { 'do': ':UpdateRemotePlugins' }
  Plug 'Shougo/denite.nvim'
  Plug 'roxma/nvim-yarp'
  Plug 'roxma/vim-hug-neovim-rpc'


" Define mappings
autocmd FileType denite call s:denite_my_settings()
function! s:denite_my_settings() abort
  nnoremap <silent><buffer><expr> <CR>
  \ denite#do_map('do_action')
  nnoremap <silent><buffer><expr> d
  \ denite#do_map('do_action', 'delete')
  nnoremap <silent><buffer><expr> p
  \ denite#do_map('do_action', 'preview')
  nnoremap <silent><buffer><expr> q
  \ denite#do_map('quit')
  nnoremap <silent><buffer><expr> i
  \ denite#do_map('open_filter_buffer')
  nnoremap <silent><buffer><expr> <Space>
  \ denite#do_map('toggle_select').'j'


Old UI

denite old UI

New UI

denite new UI


denite new UI2 denite new UI3