⚡️ Dark powered Vim/Neovim plugin manager
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update ISSUE_TEMPLATE Jan 12, 2018
autoload Fix plugin reloading problem Jan 10, 2019
bin Fix installer.sh Oct 1, 2018
doc Add plugin ftplugin Nov 26, 2018
rplugin/python3/denite/source Fix dein_log source Jan 25, 2018
test Fix plugin reloading problem Jan 10, 2019
.gitignore Update .gitignore May 2, 2018
.travis.yml Fix .travis.yml Apr 30, 2018
LICENSE Add copyright in LICENSE Mar 6, 2016
README.md Fix README examples Oct 28, 2018



Join the chat at https://gitter.im/Shougo/dein.vim 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 vim.org 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. https://github.com/wsdjeg/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 https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
# For example, we just use `~/.cache/dein` as installation directory
sh ./installer.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/github.com/Shougo/dein.vim

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

  call dein#add('~/.cache/dein/repos/github.com/Shougo/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')

  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:"github.com/{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.