Skip to content

🐉 Dark powered asynchronous unite all interfaces for Neovim/Vim8

License

Notifications You must be signed in to change notification settings

Shougo/denite.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

denite.nvim

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.

About

Join the chat at https://gitter.im/Shougo/denite.nvim

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

Requirements

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

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. https://github.com/roxma/nvim-yarp

Please install vim-hug-neovim-rpc plugin for Vim8. https://github.com/roxma/vim-hug-neovim-rpc

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).

Installation

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')
endif

For vim-plug

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

Examples

" 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'
endfunction

Screenshots

Old UI

denite old UI

New UI

denite new UI

Others

denite new UI2 denite new UI3