Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.


Gitter GitHub release (latest by date) GitHub issues

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

To learn more details, visit here.

Table of contents


  • Fast - Faster than NeoBundle.
  • Simple - Function API and familiar patterns, without commands or dependecy 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.5.0 or higher)
  • Git should be installed (v2.4.11 or higher)
  • xcopy installed or Python3 interface (on Windows)

Note: If you use Vim (lower than 8.2) or NeoVim (lower than 0.5), please use dein.vim v2.2 instead.

Basic installation

To install dein.vim on UNIX systems, you should run the install script. To do that, you may either download and run the script manually, or use the following wget or curl command:


sh -c "$(wget -O-"


sh -c "$(curl -fsSL"

Manual inspection

Note: "It's a good idea to inspect the install script from projects you don't know."

You can do that by downloading the install script, then looking through it to check if the code is safe:

$ wget
$ less
$ sh

The script code is well formated, so you can better understand all the code. The script can take some arguments that are listed in Additional Notes section below.

Additional Notes

  • If you want to overwrite an existent .vimrc or init.vim config, pass the --overwrite-config (or in short -oWC) argument to the installation script. By default, if there's one config already, the new config is generated inside the base path.

  • The installer script has prompt menus that helps you setup everything. However, if you want install Dein.vim into an different path location, pass the location to the end of the script like sh ~/.vim/bundle.

Powershell (Windows)

The support for Windows requires Powershell.

Open your Powershell and download the script:

Invoke-WebRequest -OutFile installer.ps1

After checking the code, allow it to be executed properly:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Lastly, for an installation at the ~/.cache/dein directory execute:

./installer.ps1 ~/.cache/dein

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 runtime path (required)
set runtimepath+=/home/{Your username}/.cache/dein/repos/

" Call dein initialization (required)
call dein#begin('/home/{Your username}/.cache/dein/')

call dein#add('/home/{Your username}/.cache/dein/repos/')

" 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.
if has('filetype')
  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


Licensed under the MIT license.