Skip to content


Repository files navigation


Gitter GitHub release (latest by date) GitHub issues

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

Note: Active developement on dein.vim has stopped. The only future changes will be bug fixes.

Please see Dpp.vim

To learn more details, visit here.

Table of contents


  • Fast - Faster than NeoBundle.
  • Simple - Function API and familiar patterns, without commands or dependency hell.
  • Async - Clean asynchronous installation supported.
  • Extendable - Supports plugins from local or remote sources, and also Non-Github plugins.
  • Consistent - Go-like directory structure (eg.{author}/{repository})
  • Practical - Automatically merge plugins directories to avoid long runtimepath

Getting started


  • Vim (v8.2 or higher) or NeoVim (v0.8.0 or higher)
  • Git should be installed (v2.4.11 or higher)

Basic installation

You can install dein.vim by your vimrc/init.vim.

let $CACHE = expand('~/.cache')
if !($CACHE->isdirectory())
  call mkdir($CACHE, 'p')
if &runtimepath !~# '/dein.vim'
  let s:dir = 'dein.vim'->fnamemodify(':p')
  if !(s:dir->isdirectory())
    let s:dir = $CACHE .. '/dein/repos/'
    if !(s:dir->isdirectory())
      execute '!git clone' s:dir
  execute 'set runtimepath^='
        \ .. s:dir->fnamemodify(':p')->substitute('[/\\]$', '', '')

Command line installation

Please use dein-installer.vim.

Config example

Show a UNIX installation example using "~/.cache/dein" as the base path location.
" Ward off unexpected things that your distro might have made, as
" well as sanely reset options when re-sourcing .vimrc
set nocompatible

" Set dein base path (required)
let s:dein_base = '~/.cache/dein/'

" Set dein source path (required)
let s:dein_src = '~/.cache/dein/repos/'

" Set dein runtime path (required)
execute 'set runtimepath+=' .. s:dein_src

" Call dein initialization (required)
call dein#begin(s:dein_base)

call dein#add(s:dein_src)

" Your plugins go here:
"call dein#add('Shougo/neosnippet.vim')
"call dein#add('Shougo/neosnippet-snippets')

" Finish dein initialization (required)
call dein#end()

" Attempt to determine the type of a file based on its name and possibly its
" contents. Use this to allow intelligent auto-indenting for each filetype,
" and for plugins that are filetype specific.
filetype indent plugin on

" Enable syntax highlighting
if has('syntax')
  syntax on

" Uncomment if you want to install not-installed plugins on startup.
"if dein#check_install()
" call dein#install()


Dein has an user interface like vim-plug?



This is where Dein future plans or TODOS are listed:

  • Other types support (zip, svn, hg, ...)
  • Metadata repository support
  • Require neovim 0.10+ or Vim 9.0+(to use interpolated-string)


Licensed under the MIT license.