Branch: master
Find file Copy path
124 lines (83 sloc) 4.03 KB


Join the chat at Build Status

Dein.vim is a dark powered Vim/Neovim plugin manager.


  • Vim 8.0 or above or NeoVim.
  • "xcopy" command in $PATH (Windows)
  • "git" command in $PATH (if you want to install github or plugins)

Note: If you use Vim 7.4, please use dein.vim ver.1.5 instead.

If you need vim-plug like install UI, you can use dein-ui.vim.

Quick start

Note: You must define the installation directory before to use dein. The directory that you will want to use depends on your usage.

For example, ~/.vim/bundles or ~/.cache/dein or ~/.local/share/dein. dein.vim does not define a default installation directory. You must not set the installation directory as ~/.vim/plugin or ~/.config/nvim/plugin.

Unix/Linux or Mac OS X

  1. Run below script.
curl >
# For example, we just use `~/.cache/dein` as installation directory
sh ./ ~/.cache/dein
  1. Edit your .vimrc like this.
if &compatible
  set nocompatible
" Add the dein installation directory into runtimepath
set runtimepath+=~/.cache/dein/repos/

if dein#load_state('~/.cache/dein')
  call dein#begin('~/.cache/dein')

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

  call dein#end()
  call dein#save_state()

filetype plugin indent on
syntax enable
  1. Open vim and install dein
:call dein#install()


  • Faster than NeoBundle

  • Simple

  • No commands, Functions only to simplify the implementation

  • Easy to test and maintain

  • No Vundle/NeoBundle compatibility

  • neovim/Vim8 asynchronous API installation support

  • Local plugin support

  • Non github plugins support

  • Go like clone directory name ex:"{user}/{repository}"

  • Merge the plugins directories automatically to avoid long 'runtimepath'

Future works (TODO)

  • Other types support (zip, svn, hg, ...)

  • Metadata repository support


Some common options. For a more detailed list, run :h dein-options

Option Type Description
name string The name for a plugin. If it is omitted, the tail of the repository name will be used
rev string The revision number or branch/tag name for the repo
build string Command to run after the plugin is installed
on_ft string or list Load a plugin for the current filetype
on_cmd string or list Load the plugin for these commands
rtp string You can use this option when the repository has the Vim plugin in a subdirectory
if string or number If it is String, dein will eval it.
merged number If set to 0, dein doesn't merge the plugin directory.