Skip to content

Shougo/dein.vim

Repository files navigation

Dein.vim

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

Features

  • 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. github.com/{author}/{repository})
  • Practical - Automatically merge plugins directories to avoid long runtimepath

Getting started

Prerequisites

  • 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')
endif
if &runtimepath !~# '/dein.vim'
  let s:dir = 'dein.vim'->fnamemodify(':p')
  if !(s:dir->isdirectory())
    let s:dir = $CACHE .. '/dein/repos/github.com/Shougo/dein.vim'
    if !(s:dir->isdirectory())
      execute '!git clone https://github.com/Shougo/dein.vim' s:dir
    endif
  endif
  execute 'set runtimepath^='
        \ .. s:dir->fnamemodify(':p')->substitute('[/\\]$', '', '')
endif

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/github.com/Shougo/dein.vim'

" 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
endif

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

Q&A

Dein has an user interface like vim-plug?

Feedback

Tasks

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)

License

Licensed under the MIT license.