Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


:zap: Dark powered Vim/Neovim plugin manager

Subscribe to updates I use dein.vim

Statistics on dein.vim

Number of watchers on Github 1689
Number of open issues 1
Average time to close an issue 4 days
Main language VimL
Average time to merge a PR about 19 hours
Open pull requests 5+
Closed pull requests 8+
Last commit over 2 years ago
Repo Created over 4 years ago
Repo Last Updated over 2 years ago
Size 939 KB
Organization / Authorshougo
Page Updated
Do you use dein.vim? Leave a review!
View dein.vim activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating dein.vim for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Build Status


Join the chat at https://gitter.im/Shougo/dein.vim Build Status

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


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

Quick start

Note: You must define the installation directory before to use dein. It depends on your usage. For example, \~/.vim/bundles or \~/.cache/dein or \~/.local/share/dein. dein.vim has not define the default installation directory. You must not set the installation directory under \~/.vim/plugin or \~/.config/nvim/plugin.

If you are using Unix/Linux or Mac OS X.

Note: {directory} is just placeholder.

  1. Run below script.

     $ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
     $ sh ./installer.sh {specify the installation directory}
  2. Edit your .vimrc like this.

    if &compatible
      set nocompatible
    set runtimepath+={path to dein.vim directory}
    if dein#load_state({path to plugin base path directory})
      call dein#begin({path to plugin base path directory})
      call dein#add({path to dein.vim directory})
      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
  3. 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 (not implemented yet)

  • 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 A name for the 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
dein.vim open issues Ask a question     (View All Issues)
  • over 3 years plugin doesn't load with 'on_ft' option
  • over 3 years [FEATURE REQUEST] Gist's viml script couldn't install
  • over 3 years recache_runtimepath not called for changes to VIMRC other than ~/.vimrc
  • about 4 years Error detected while processing fuction ... install#_rm
dein.vim open pull requests (View All Pulls)
  • Refactor and optimize
  • Improve the readibility of the OPTIONS and HOOKS sections.
  • Don't abort when clear runtimepath.
  • add instructions for installing plugins
  • Use vital-System instead
dein.vim list of languages used
Other projects in VimL