dein.vim - dein.vim plugins configuration

These are all hosted on GitHub1. You should try at least a few of them, they may make your life far simpler!

Don’t limit ourselves to plain ASCII encoding:

scriptencoding utf-8

Enforce vim script implementation to reduce ambiguities and improve robustness:

scriptversion 4

Attention

I record requirements even when they’re clearly met because I like to know what may break if I make changes. For example, version checks for cases where dein.vim wouldn’t work anyway or using has('patch-x.x.x') for versions prior to 7.4.237.

Note

In places where I could use a prefix, in on_cmd setup for example, I’ll often not do so because I prefer to have tab completion available for the commands that I use from the outset.

See also

Repositories

dein.vim

“A dark powered Vim/Neovim plugin manager”

repository

Shougo/dein.vim

config

vimrc.d/dein.vim

functions

autoload/plugins/dein.vim

call dein#add(expand('~/.vim/external/dein.vim'), #{
\   if: v:version >= 802,
\ })

sideways.vim

“Move an item in a delimiter-separated list left or right”

repository

AndrewRadev/sideways.vim

early setup

maps

call dein#add('AndrewRadev/sideways.vim', #{
\   on_cmd: plugins#dein#prefix('Sideways', ['Left', 'Right']),
\   on_map: #{n: ['[sideways]', ]},
\ })

splitjoin.vim

“Switch between single-line and multiline forms of code”

repository

AndrewRadev/splitjoin.vim

config

localcfg/plugins/splitjoin.vim.vim

call dein#add('AndrewRadev/splitjoin.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: plugins#dein#prefix('Splitjoin', ['Join', 'Split']),
\   on_map: #{n: ['gJ', 'gS']},
\ })

switch.vim

“Switch segments of text with predefined replacements”

repository

AndrewRadev/switch.vim

early setup

maps

Edit your configuration files like they had a fancy dialog box to fiddle with their preferences.

call dein#add('AndrewRadev/switch.vim', #{
\   on_cmd: ['Switch', ],
\   on_func: ['switch#Switch', ],
\   on_map: #{n: ['gs', ]},
\ })

vim-bracketed-paste

“Enables transparent pasting into vim

repository

ConradIrwin/vim-bracketed-paste

call dein#add('ConradIrwin/vim-bracketed-paste', #{
\   on_event: ['InsertEnter', ],
\ })

dwm.vim

“Tiled Window Management for Vim”

repository

JNRowe/dwm.vim

early setup

maps

Excellent window management, it really does bring dwm simplicity to vim!

call dein#add('JNRowe/dwm.vim', #{
\   on_map: #{n: ['<Plug>DWM', ]},
\ })

securemodelines

“A secure alternative to modelines”

repository

JNRowe/securemodelines

config

localcfg/plugins/securemodelines.vim

This lightens the load of dealing with people who can’t follow coding standards without allowing them free access to your vim session.

call dein#add('JNRowe/securemodelines', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

vim-illuminate

“Selectively illuminate other uses of the current word”

repository

RRethy/vim-illuminate

config

localcfg/plugins/vim_illuminate.vim

call dein#add('RRethy/vim-illuminate', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_event: ['CursorHold', ],
\ })

delimitMate

“Automatic closing of quotes, parenthesis, brackets, etc”

repository

Raimondi/delimitMate

config

localcfg/plugins/delimitMate.vim

The number 1 “love it or hate it” plugin, to use it well you’ll want to read its documentation and disable the defaults that get in the way of your chosen languages.

call dein#add('Raimondi/delimitMate', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_event: ['InsertEnter', ],
\ })

vimproc

“Asynchronous execution plugin”

repository

Shougo/vimproc

call dein#add('Shougo/vimproc', #{
\   build: 'make',
\   lazy: v:true,
\ })

Note

Lazy loaded for reverse dependency hooks.

ultisnips

“The ultimate plugin for snippets”

repository

SirVer/ultisnips

config

localcfg/plugins/ultisnips.vim

functions

autoload/plugins/ultisnips.vim

call dein#add('SirVer/ultisnips', #{
\   depends: ['vim-snippets', ],
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('insert_expand') && has('pythonx') && v:version >= 704,
\   on_event: ['InsertEnter', ],
\   on_ft: ['snippets', ],
\ })

vim-gitgutter

“Show git diff status in the gutter”

repository

airblade/vim-gitgutter

early setup

maps

config

localcfg/plugins/vim_gitgutter.vim

call dein#add('airblade/vim-gitgutter', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('signs') && plugins#dein#has_exec('git'),
\ })

vim-matchup

“Visualize, navigate, and operate on matching sets of text”

repository

andymass/vim-matchup

config

localcfg/plugins/vim_matchup.vim

call dein#add('andymass/vim-matchup', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: v:version >= 704,
\   on_cmd: ['MatchupWhereAmI?', ],
\   on_map: #{nx: ['%', ]},
\ })

vim-bad-whitespace

“Highlights whitespace at the end of lines”

repository

bitc/vim-bad-whitespace

Highlights or deletes broken whitespace, and removes that ugly almost-kind-of-works solution from your .vimrc.

call dein#add('bitc/vim-bad-whitespace', #{
\   on_cmd: plugins#dein#suffix('BadWhitespace',
\                               ['Erase', 'Hide', 'Toggle']),
\   on_event: ['InsertEnter', ],
\ })

vim-toml

“Syntax for TOML

repository

cespare/vim-toml

call dein#add('cespare/vim-toml')

Colorizer

“Colour colour names and codes”

repository

chrisbra/Colorizer

call dein#add('chrisbra/Colorizer', #{
\   on_cmd: plugins#dein#prefix('Color',
\                               ['Highlight', 'Toggle']) + ['RGB2Term', ],
\ })

Note

I don’t automatically enable this on specific filetypes because it severely slows down vim, sometimes even enough to make you regret enabling it. However, it is incredibly useful and definitely worth the slow down when you’re editing themes.

NrrwRgn

“A narrow region plugin (similar to Emacs)”

repository

chrisbra/NrrwRgn

If, like me, you’re a partial emacs convert :NrrwRgn is wonderful. If you’re not then simply imagine being able to work in a visual mode hunk for a full editing session.

call dein#add('chrisbra/NrrwRgn')

Note

Despite being a good candidate for lazy loading, this repo is sourced immediately for vim-airline extension compatibility.

Recover

“Show differences for recovered files”

repository

chrisbra/Recover.vim

config

localcfg/plugins/Recover.vim.vim

call dein#add('chrisbra/Recover.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: v:version >= 703,
\   on_cmd: ['RecoverPluginEnable', ],
\ })

Replay

“Record and replay your editing sessions”

repository

chrisbra/Replay

config

localcfg/plugins/Replay.vim

call dein#add('chrisbra/Replay', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['ListRecords', 'ScreenCapture', 'StartRecord'],
\ })

SaveSigns.vim

“Save signs across sessions”

repository

chrisbra/SaveSigns.vim

call dein#add('chrisbra/SaveSigns.vim', #{
\   if: has('signs'),
\   on_cmd: ['SaveSigns', ],
\ })

csv.vim

“A filetype plugin for CSV files”

repository

chrisbra/csv.vim

config

localcfg/plugins/csv.vim.vim

Disturbingly cool editing for CSV files, ‘nuff said.

call dein#add('chrisbra/csv.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_ft: ['csv', ],
\ })

unicode.vim

“A plugin for handling Unicode and digraphs characters”

repository

chrisbra/unicode.vim

early setup

maps

config

localcfg/plugins/unicode.vim.vim

Be like me and annoy your co-workers/friends by littering your mails with Unicode. It’s Really Exciting U+2122<C-x><C-z>.

call dein#add('chrisbra/unicode.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

Note

Despite being a good candidate for lazy loading, this repo is sourced immediately for vim-airline extension compatibility.

vim_faq

“The vim FAQ

repository

chrisbra/vim_faq

call dein#add('chrisbra/vim_faq', #{
\   if: v:version >= 600,
\   lazy: v:true,
\ })

vim-codereview

“GitHub pull request-based code reviews”

repository

codegram/vim-codereview

call dein#add('codegram/vim-codereview', #{
\   depends: ['patchreview-vim', ],
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('ruby') && plugins#dein#has_exec('curl'),
\   on_cmd: ['CodeReview', ],
\ })

vim-capnp

“Syntax highlighting, folding and indentation rules for Cap’n Proto

repository

cstrahan/vim-capnp

call dein#add('cstrahan/vim-capnp', #{
\   lazy: v:false,
\   on_ft: ['capnp', ],
\ })

jedi-vim

“A VIM binding to the jedi autocompletion library”

repository

davidhalter/jedi-vim

config

localcfg/plugins/jedi_vim.vim

call dein#add('davidhalter/jedi-vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('pythonx'),
\   on_cmd: ['JediClearCache', ],
\   on_ft: ['python', ],
\ })

vim-ditto

“Highlight overused words”

repository

dbmrq/vim-ditto

config

localcfg/plugins/vim_ditto.vim

call dein#add('dbmrq/vim-ditto', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: plugins#dein#prefix('Ditto', ['File', 'On']),
\ })

ale

“Asynchronous Lint Engine”

repository

dense-analysis/ale

early setup

maps

config

localcfg/plugins/ale.vim

Start your mind boggling every time someone moans about having to switch from WingIDE to a real editor when they edit files of different types.

call dein#add('dense-analysis/ale', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: v:version >= 800 && has('signs'),
\ })

vim-table-mode

“An awesome automatic table creator & formatter”

repository

dhruvasagar/vim-table-mode

call dein#add('dhruvasagar/vim-table-mode', #{
\   on_cmd: plugins#dein#prefix('Table', ['ModeToggle', 'ize']),
\   on_ft: ['rst', ],
\   on_map: #{nx: ['<LocalLeader>t', ]},
\ })

bullets.vim

“Automated Bullet Lists in Vim”

repository

dkarter/bullets.vim

call dein#add('dkarter/bullets.vim', #{
\   hook_post_source: 'let g:bullets_enabled_file_types += ["rst"]',
\   on_ft: ['gitcommit', 'rst'],
\ })

Note

We set g:bullets_enabled_file_types in a post source hook as the option isn’t additive, and this allows us to catch updates to the supported filetypes in the plugin.

editorconfig-vim

“The EditorConfig plugin”

repository

editorconfig/editorconfig-vim

config

localcfg/plugins/editorconfig_vim.vim

call dein#add('editorconfig/editorconfig-vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('pythonx'),
\   on_event: ['InsertEnter', ],
\   on_path: ['.editorconfig', ],
\ })

vim-cute-python

“Cute conceal support for Python”

repository

ehamberg/vim-cute-python

Make your Python code unreadable to people looking over your shoulder, by decorating it with glyphs.

call dein#add('ehamberg/vim-cute-python', #{
\   if: has('conceal') && v:version >= 703,
\   lazy: v:false,
\   on_ft: ['python', ],
\   rev: 'moresymbols',
\ })

Tip

Be sure to try the moresymbols branch. It makes a far larger visual change to editing Python files.

visSum.vim

“Sum numbers that appear in selection”

repository

elazar/visSum.vim

call dein#add('elazar/visSum.vim', #{
\   on_map: #{x: ['<LocalLeader>su', ]},
\ })

regex

“Allows you to test regular expressions”

repository

ervandew/regex

config

localcfg/plugins/regex.vim

functions

autoload/plugins/regex.vim

Removes the need to jump to your language’s REPL when writing ugly, ugly RegEx.

call dein#add('ervandew/regex', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['Regex', ],
\ })

tabular

“Configurable, flexible, intuitive text aligning”

repository

godlygeek/tabular

Fancy text alignment tricks are only seconds away.

This is the one plugin you use to make people who use lesser environments jealous.

call dein#add('godlygeek/tabular', #{
\   on_cmd: ['Tabularize', 'AddTabularPipeline'],
\ })

xterm-color-table.vim

“All 256 xterm colours with their RGB equivalents”

repository

guns/xterm-color-table.vim

call dein#add('guns/xterm-color-table.vim', #{
\   on_cmd: plugins#dein#suffix('XtermColorTable', ['', 'V']),
\ })

dein-command.vim

“Utility commands for dein.vim

repository

haya14busa/dein-command.vim

call dein#add('haya14busa/dein-command.vim', #{
\   on_cmd: ['Dein', ],
\ })

vim-snippets

“Snippet files for various programming languages”

repository

honza/vim-snippets

config

localcfg/plugins/vim_snippets.vim

call dein#add('honza/vim-snippets', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('insert_expand') && has('pythonx') && v:version >= 704,
\   lazy: v:true,
\ })

Note

Lazy loaded for reverse dependency hooks.

vim-vebugger

“Yet another debugger frontend plugin”

repository

idanarye/vim-vebugger

early setup

maps

config

localcfg/plugins/vim_vebugger.vim

let s:vebugger_commands = []
for [s:cmd, s:arg] in [
\   ['gdb', v:null],
\   ['lldb', v:null],
\   ['python3', 'PDB3'],
\   ['ruby', 'RDebug'],
\ ]
    if plugins#dein#has_exec(s:cmd)
        let s:vebugger_commands += [s:arg ?? toupper(s:cmd)]
    endif
endfor
call dein#add('idanarye/vim-vebugger', #{
\   depends: ['vimproc', ],
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: plugins#dein#prefix('VBGstart', s:vebugger_commands),
\   on_func: ['vebugger', ],
\ })

vim-yankitute

RegEx powered yank and substitute”

repository

idanarye/vim-yankitute

call dein#add('idanarye/vim-yankitute', #{
\   on_cmd: ['Yankitute', ],
\ })

vim-gnupg

“Transparent editing of gpg encrypted files”

repository

jamessan/vim-gnupg

call dein#add('jamessan/vim-gnupg', #{
\   if: plugins#dein#has_exec('gpg') || plugins#dein#has_exec('gpg2'),
\   on_path: ['.*\.gpg', ],
\ })

vim-textobj-css

“Text objects for working with CSS

repository

jasonlong/vim-textobj-css

call dein#add('jasonlong/vim-textobj-css', #{
\   depends: ['vim-textobj-user', ],
\   on_ft: ['css', 'html'],
\ })

semantic-highlight.vim

“Where every variable is a different color, an idea popularized by Evan Brooks blog post.

repository

jaxbot/semantic-highlight.vim

config

localcfg/plugins/semantic_highlight.vim.vim

call dein#add('jaxbot/semantic-highlight.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['SemanticHighlight', ],
\ })

vim-editqf

“Edit and store quickfix/location list entries”

repository

jceb/vim-editqf

early setup

maps

config

localcfg/plugins/vim_editqf.vim

functions

autoload/plugins/vim_editqf.vim

Add your own “todo” entries to the quickfix list, and hold them across sessions.

call dein#add('jceb/vim-editqf', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('quickfix'),
\   on_cmd:
\       plugins#dein#prefix('Loc', ['AddNote', 'Load', 'Save'])
\       + plugins#dein#prefix('QF', ['AddNote', 'Load', 'Save']),
\   on_ft: ['qf', ],
\   on_map: #{n: ['<Plug>QFAdd', ]},
\ })

vimagit

“Ease your git workflow”

repository

jreybert/vimagit

call dein#add('jreybert/vimagit')

Note

Despite being a good candidate for lazy loading, this repo is sourced immediately for vim-airline extension compatibility.

fzf

“Basic fzf integration”

repository

junegunn/fzf

config

localcfg/plugins/fzf.vim

call dein#add('junegunn/fzf', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: plugins#dein#has_exec('fzf'),
\   on_cmd: ['FZF', ],
\   on_func: ['fzf#run', ],
\ })

fzf.vim

“Advanced fzf integration”

repository

junegunn/fzf.vim

early setup

maps

config

localcfg/plugins/fzf.vim.vim

Setup lazy loading for commonly used commands and test for optional commands:

if plugins#dein#has_exec('fzf')
    call dein#add('junegunn/fzf.vim', #{
    \   depends: ['fzf', ],
    \   hook_source: 'call plugins#dein#load_config()',
    \   if: plugins#dein#has_exec('fzf'),
    \   on_cmd: plugins#dein#prefix('FZF', g:fzf_commands),
    \ })
endif

Note

This doesn’t list all the possible commands, just the ones I’d use enough to want to tab complete on.

goyo.vim

“Distraction-free writing in Vim.”

repository

junegunn/goyo.vim

config

localcfg/plugins/goyo.vim.vim

call dein#add('junegunn/goyo.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['Goyo', ],
\ })

vim-emoji

“Emoji support”

repository

junegunn/vim-emoji

call dein#add('junegunn/vim-emoji', #{
\   lazy: v:false,
\   on_func: ['emoji', ],
\ })

vim-peekaboo

“Preview support for registers”

repository

junegunn/vim-peekaboo

config

localcfg/plugins/vim_peekaboo.vim

functions

autoload/plugins/vim_peekaboo.vim

call dein#add('junegunn/vim-peekaboo', #{
\   hook_source:
\       'call plugins#dein#load_config() | ' ..
\       'call plugins#vim_peekaboo#set_compact()',
\   hook_post_source: 'doautocmd <nomodeline> peekaboo_init BufEnter',
\   on_map: #{
\       i: ['<C-r>', ],
\       n: ['@', '"'],
\       x: ['"', ],
\   },
\ })

patchreview-vim

“Single, multi-patch or diff code reviews”

repository

junkblocker/patchreview-vim

config

localcfg/plugins/patchreview_vim.vim

call dein#add('junkblocker/patchreview-vim', #{
\   on_cmd: plugins#dein#suffix('Review',
\                               ['Diff', 'Patch', 'ReversePatchReview']),
\ })

vim-eighties

“Automatically resizes your windows”

repository

justincampbell/vim-eighties

config

localcfg/plugins/vim_eighties.vim

call dein#add('justincampbell/vim-eighties', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: plugins#dein#prefix('Eighties', ['Disable', 'Enable']),
\ })

vim-sneak

“Motion improved”

repository

justinmk/vim-sneak

config

localcfg/plugins/vim_sneak.vim

functions

autoload/plugins/vim_sneak.vim

call dein#add('justinmk/vim-sneak', #{
\   depends: ['vim-repeat', ],
\   hook_source: 'call plugins#dein#load_config()',
\   if: v:version >= 703,
\   on_map: #{
\       n: ['S', 's'],
\       o: ['Z', 'z'],
\       x: ['Z', 's'],
\   },
\ })

vim-coiled-snake

“Enhanced Python folding”

repository

kalekundert/vim-coiled-snake

config

localcfg/plugins/vim_coiled_snake.vim

call dein#add('kalekundert/vim-coiled-snake', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('folding'),
\   lazy: v:false,
\   on_ft: ['python', ],
\ })

vim-textobj-fold

“Text objects for folds”

repository

kana/vim-textobj-fold

call dein#add('kana/vim-textobj-fold', #{
\   depends: ['vim-textobj-user', ],
\   on_func: ['textobj', ],
\ })

vim-textobj-user

“Create your own text objects”

repository

kana/vim-textobj-user

call dein#add('kana/vim-textobj-user', #{
\   lazy: v:false,
\   on_func: ['textobj', ],
\ })

nyancat-vim

repository

koron/nyancat-vim

nyancat. bah, grow up!

call dein#add('koron/nyancat-vim', #{
\   on_cmd: plugins#dein#prefix('Nyancat', ['', '2']),
\ })

vim-signature

“A plugin to place, toggle and display marks”

repository

kshenoy/vim-signature

config

localcfg/plugins/vim_signature.vim

call dein#add('kshenoy/vim-signature', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('signs'),
\ })

moonscript-vim

“Language support for moonscript

repository

leafo/moonscript-vim

call dein#add('leafo/moonscript-vim', #{
\   lazy: v:false,
\   on_ft: ['moon', ],
\ })

vim-ledger

“Language support for ledger

repository

ledger/vim-ledger

early setup

maps

config

localcfg/plugins/vim_ledger.vim

Combine this with csv.vim, and it makes importing and editing your accounts/expenses an almost nice-ish experience.

call dein#add('ledger/vim-ledger', #{
\   hook_source: 'call plugins#dein#load_config()',
\   lazy: v:false,
\   on_ft: ['ledger', ],
\ })

rainbow

“Help read complex code by showing parentheses in different colours”

repository

luochen1990/rainbow

config

localcfg/plugins/rainbow.vim

Make your vim sessions feel like they have been painted by a three year old trying to impress their grandpa. Which is a Good Thing™.

call dein#add('luochen1990/rainbow', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

calendar-vim

“A calendar window you can use within vim

repository

mattn/calendar-vim

early setup

maps

config

localcfg/plugins/calendar_vim.vim

call dein#add('mattn/calendar-vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: plugins#dein#suffix('Calendar', ['', 'H', 'T', 'VR']),
\   on_map: #{n: ['[calendar]', ]},
\ })

emmet-vim

“Plugins for HTML and CSS hi-speed coding”

repository

mattn/emmet-vim

config

localcfg/plugins/emmet_vim.vim

call dein#add('mattn/emmet-vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('insert_expand') && v:version >= 700,
\   on_ft: ['html', 'htmljinja', 'xhtml', 'xml', 'xsl'],
\ })

vim-cuesheet

“Syntax highlighting of cue sheet

repository

mgrabovsky/vim-cuesheet

call dein#add('mgrabovsky/vim-cuesheet', #{
\   lazy: v:false,
\   on_ft: ['cuesheet', ],
\ })

vim-startify

“The fancy start screen”

repository

mhinz/vim-startify

config

localcfg/plugins/vim_startify.vim

functions

autoload/plugins/vim_startify.vim

call dein#add('mhinz/vim-startify', #{
\   hook_source:
\       'call plugins#dein#load_config() | ' ..
\       'call plugins#vim_startify#set_header_display()',
\   on_cmd: ['Startify', ],
\   on_map: ['<S-F1>', ],
\ })

vim-indent-object

“Text objects based on indent levels”

repository

michaeljsmith/vim-indent-object

Makes handling Python code far, far easier.

call dein#add('michaeljsmith/vim-indent-object', #{
\   on_ft: ['ledger', 'moon', 'nim', 'python'],
\   on_map: #{ov: ['aI', 'ai', 'iI', 'ii']},
\ })

vim-bufmru

“Order buffers in MRU order”

repository

mildred/vim-bufmru

early setup

maps

call dein#add('mildred/vim-bufmru', #{
\   on_cmd: ['BufMRU', ],
\   on_map: #{n: ['[bufmru]', ]},
\ })

vim-jinja

“Language support for jinja

repository

mitsuhiko/vim-jinja

config

localcfg/plugins/vim_jinja.vim

call dein#add('mitsuhiko/vim-jinja', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_ft: ['jinja', ],
\ })

vim-bbye

“Delete buffers without breaking your layout”

repository

moll/vim-bbye

config

localcfg/plugins/vim_bbye.vim

call dein#add('moll/vim-bbye', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['Bdelete', 'Bwipeout'],
\   on_map: #{n: ['<LocalLeader>q', ]},
\ })

vim-indent-guides

“A plugin for visually displaying indent levels”

repository

nathanaelkane/vim-indent-guides

config

localcfg/plugins/vim_indent_guides.vim

call dein#add('nathanaelkane/vim-indent-guides', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

vim-beancount

“Filetype plugin for beancount files”

repository

nathangrigg/vim-beancount

call dein#add('nathangrigg/vim-beancount', #{
\   lazy: v:false,
\   on_ft: ['beancount', ],
\ })

vim-clevertab

“Tiny replacement for Supertab”

repository

neitanod/vim-clevertab

config

localcfg/plugins/vim_clevertab.vim

Makes you feel more like a smart IDE user, how cool is that?

call dein#add('neitanod/vim-clevertab', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('insert_expand'),
\ })

vim_bridge

“Allow transparent calls to Python functions in native Vim scripts”

repository

nvie/vim_bridge

call dein#add('nvie/vim_bridge', #{
\   lazy: v:false,
\   on_cmd: ['python', ],
\ })

html5.vim

HTML5 + inline SVG omnicomplete function, indent and syntax”

repository

othree/html5.vim

call dein#add('othree/html5.vim', #{
\   lazy: v:false,
\   on_ft: ['html', ],
\ })

Yuescript-vim

“Adds syntax highlighting and indent support for YueScript”

repository

pigpigyyy/Yuescript-vim

call dein#add('pigpigyyy/Yuescript-vim', #{
\   lazy: v:false,
\   on_ft: ['yue', ],
\ })

vim-textobj-quote

“Better support for typographic (‘curly’) quote characters”

repository

reedes/vim-textobj-quote

config

localcfg/plugins/vim_textobj_quote.vim

functions

autoload/plugins/vim_textobj_quote.vim

call dein#add('reedes/vim-textobj-quote', #{
\   depends: ['vim-textobj-user', ],
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['ToggleEducate', ],
\   on_ft: ['gitcommit', 'gitrebase', 'mail', 'note', 'rst', 'text'],
\ })

vim-qlist

“Make working with the quickfix list/window smoother”

repository

romainl/vim-qlist

call dein#add('romainl/vim-qlist', #{
\   if: has('quickfix'),
\   on_cmd: plugins#dein#suffix('list', ['D', 'I']),
\   on_ft: ['qf', ],
\   on_map: #{n: ['[D', ']D', 'I', ']I']},
\ })

committia.vim

“More pleasant editing on commit message”

repository

rhysd/committia.vim

early setup

filetype

config

localcfg/plugins/committia.vim.vim

call dein#add('rhysd/committia.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: plugins#dein#has_exec('git'),
\   on_ft: ['gitcommit', ],
\ })

git-messenger.vim

“Reveal the hidden message by git under the cursor quickly”

repository

rhysd/git-messenger.vim

early setup

maps

config

localcfg/plugins/git_messenger.vim.vim

call dein#add('rhysd/git-messenger.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: plugins#dein#has_exec('git'),
\   on_cmd: ['GitMessenger', ],
\   on_map: #{n: ['[messenger]', ]},
\ })

vim-radon

“Show cyclomatic complexity of Python code”

repository

rubik/vim-radon

call dein#add('rubik/vim-radon', #{
\   if: has('signs') && has('python'),
\   lazy: v:false,
\   on_cmd: ['Radon', ],
\   on_ft: ['python', ],
\ })

Note

There is no radon check here, because it doesn’t actually use radon.

vim-mundo

“Visualizes the Vim undo tree”

repository

simnalamburt/vim-mundo

early setup

maps

config

localcfg/plugins/vim_mundo.vim

Finally grasp the vim undo-tree, without this the feature can be really daunting to wrap your head around.

call dein#add('simnalamburt/vim-mundo', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('pythonx') && v:version >= 703,
\   on_cmd: ['MundoToggle', ],
\ })

splice.vim

“Plugin for resolving conflicts during three-way merges”

repository

sjl/splice.vim

call dein#add('sjl/splice.vim', #{
\   on_cmd: ['SpliceInit', ],
\ })

vim-space

“Smart space key”

repository

spiiph/vim-space

config

localcfg/plugins/vim_space.vim

call dein#add('spiiph/vim-space', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_map: #{n: ['<space>', ]},
\ })

vim-vimlint

“Linter for vim script”

repository

syngan/vim-vimlint

config

localcfg/plugins/vim_vimlint.vim

call dein#add('syngan/vim-vimlint', #{
\   depends: ['vim-vimlparser', ],
\   hook_source: 'call plugins#dein#load_config()',
\   lazy: v:false,
\   on_cmd: ['VimLint', ],
\   on_ft: ['vim', ],
\ })

vim-quick-radon

“Applies radon to your current file”

repository

tell-k/vim-quick-radon

early setup

maps

config

localcfg/plugins/vim_quick_radon.vim

functions

autoload/plugins/vim_quick_radon.vim

call dein#add('tell-k/vim-quick-radon', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: plugins#dein#has_exec('radon'),
\   lazy: v:false,
\   on_cmd: ['QuickRadon', ],
\ })

vim-expand-region

“Incremental visual selection”

repository

terryma/vim-expand-region

call dein#add('terryma/vim-expand-region', #{
\   on_map: #{v: ['+', '_']},
\ })

vim-visual-multi

“Multiple selections/cursors”

repository

mg979/vim-visual-multi

config

doc:localcfg/plugins/vim_visual_multi

call dein#add('mg979/vim-visual-multi', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: has('pythonx') && v:version >= 800,
\   on_map: #{nx: ['<C-n>', '<C-Down>', '<C-Up>']},
\ })

nerdtree

“A tree explorer plugin to rule the Vim world. Bwahahaha!!”

repository

preservim/nerdtree

early setup

maps

config

localcfg/plugins/nerdtree.vim

call dein#add('preservim/nerdtree', #{
\   on_cmd: ['NERDTree', ],
\ })

wordnet.vim

“Look up word definitions with wordnet

repository

timcharper/wordnet.vim

early setup

maps

config

localcfg/plugins/wordnet.vim.vim

functions

autoload/plugins/wordnet_vim.vim

call dein#add('timcharper/wordnet.vim', #{
\   hook_source: 'call plugins#dein#load_config()',
\   if: plugins#dein#has_exec('wn'),
\   on_func: ['WordNetOverviews', ],
\   on_map: #{nx: ['<Leader>wn']},
\ })

molokai

“Vim port of the monokai theme for TextMate”

repository

tomasr/molokai

config

localcfg/plugins/molokai.vim

call dein#add('tomasr/molokai', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

vim-exchange

“Easy text exchange operator”

repository

tommcdo/vim-exchange

config

localcfg/plugins/vim_exchange.vim

call dein#add('tommcdo/vim-exchange', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_map: #{
\       n: ['cx', ],
\       v: ['X', ],
\   },
\ })

vim-lion

“Defines a code alignment operator”

repository

tommcdo/vim-lion

call dein#add('tommcdo/vim-lion', #{
\   on_map: #{n: ['gl', 'gL']},
\ })

vim-abolish

“Language friendly searches, substitutions, and abbreviations”

repository

tpope/vim-abolish

call dein#add('tpope/vim-abolish', #{
\   on_cmd: ['Abolish', 'S'],
\   on_map: #{n: ['cr', ]},
\ })

vim-commentary

“Comment stuff out”

repository

tpope/vim-commentary

Comment out those abusive remarks you wrote about a vim plugin with the simple power of gcc.

call dein#add('tpope/vim-commentary', #{
\   on_cmd: ['Commentary', ],
\   on_map: #{nx: ['gc', ]},
\ })

vim-fugitive

“A Git wrapper so awesome, it should be illegal”

repository

tpope/vim-fugitive

early setup

maps

Replace most of your use of a shell when working on a project with just another vim buffer.

call dein#add('tpope/vim-fugitive', #{
\   if: plugins#dein#has_exec('git'),
\ })

vim-jdaddy

JSON manipulation and pretty printing”

repository

tpope/vim-jdaddy

call dein#add('tpope/vim-jdaddy', #{
\   on_ft: ['json', ],
\ })

vim-obsession

“Continuously updated session files”

repository

tpope/vim-obsession

call dein#add('tpope/vim-obsession')

Note

Despite being a good candidate for lazy loading, this repo is sourced immediately for vim-airline extension compatibility.

vim-projectionist

“Project configuration”

repository

tpope/vim-projectionist

config

localcfg/plugins/vim_projectionist.vim

functions

autoload/plugins/vim_projectionist.vim

call dein#add('tpope/vim-projectionist', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

vim-repeat

“Repeat for plugin maps”

repository

tpope/vim-repeat

Make . work how you think it works… once someone has hacked in support to your favourite plugin anyway.

call dein#add('tpope/vim-repeat')

vim-rhubarb

“If fugitive.vim is the Git, rhubarb.vim is the Hub”

repository

tpope/vim-rhubarb

call dein#add('tpope/vim-rhubarb', #{
\   depends: ['vim-fugitive', ],
\   if: plugins#dein#has_exec('git'),
\ })

vim-rsi

Readline style insertion”

repository

tpope/vim-rsi

call dein#add('tpope/vim-rsi', #{
\   on_event: ['CmdlineEnter', 'InsertEnter'],
\ })

vim-sensible

“One step above 'nocompatible' mode”

repository

tpope/vim-sensible

Sane defaults for vim, tracking this repo might make your vim experience a little more comfortable.

call dein#add('tpope/vim-sensible', #{
\   rev: 'v1.2',
\ })

Attention

This is pinned as it can massively affect functionality, see this commit for an example.

vim-sleuth

“Heuristically set buffer options”

repository

tpope/vim-sleuth

Automagic indentation configuration, that just works.

call dein#add('tpope/vim-sleuth', #{
\   on_cmd: ['Sleuth', ],
\   on_func: ['SleuthIndicator', ],
\ })

vim-speeddating

“Increment dates, times, and more”

repository

tpope/vim-speeddating

config

localcfg/plugins/vim_speeddating.vim

Speed up those y and p based ledger entry writing sessions by at least fifteen orders of magnitude… or your money back.

call dein#add('tpope/vim-speeddating', #{
\   hook_source: 'call plugins#dein#load_config()',
\   depends: ['vim-repeat', ],
\   on_map: #{n: ['<C-a>', '<C-x>']},
\ })

vim-surround

“Plugin for deleting, changing, and adding ‘surroundings’”

repository

tpope/vim-surround

Make using ls -1 to produce the headings for your own vim documentation a relatively painless task.

call dein#add('tpope/vim-surround', #{
\   depends: ['vim-repeat', ],
\   on_map: #{
\       i: ['<C-g>S', '<C-g>s', '<C-s>'],
\       n: ['cS', 'cs', 'ds', 'yS', 'ys'],
\       x: ['S', ],
\   },
\ })

vim-unimpaired

“Pairs of handy mappings”

repository

tpope/vim-unimpaired

config

localcfg/plugins/vim_unimpaired.vim

call dein#add('tpope/vim-unimpaired', #{
\   hook_source: 'call plugins#dein#load_config()',
\ })

zoomwintab.vim

“A simple zoom window plugin”

repository

troydm/zoomwintab.vim

call dein#add('troydm/zoomwintab.vim', #{
\   on_cmd: ['ZoomWinTabToggle', ],
\   on_map: #{n: ['<C-w>o', ]},
\ })

Tip

Should you need the standard behaviour for <C-w>o, then it still available as :only.

braceless.vim

“Text objects, folding, and more for Python and other indented languages”

repository

tweekmonster/braceless.vim

call dein#add('tweekmonster/braceless.vim', #{
\   on_cmd: ['BracelessEnable', ],
\   on_ft: ['nim', 'python', 'yaml'],
\ })

startuptime.vim

“1ms could mean the difference between life and death”

repository

tweekmonster/startuptime.vim

call dein#add('tweekmonster/startuptime.vim', #{
\   on_cmd: ['StartupTime', ],
\ })

vim-airline

“Lean & mean status/tabline for vim that’s light as air”

repository

vim-airline/vim-airline

config

localcfg/plugins/vim_airline.vim

The main reason to use this is not “simply because it is pretty”, but mostly because you can dump heaps and heaps of custom code you’ve written in your .vimrc and replace it with a heap of code that is far better maintained.

call dein#add('vim-airline/vim-airline', #{
\   depends: [
\       'vim-airline-themes',
\       'vim-fugitive',
\   ],
\   hook_source: 'call plugins#dein#load_config()',
\ })

vim-airline-themes

“Official theme repository for vim-airline”

repository

vim-airline/vim-airline-themes

call dein#add('vim-airline/vim-airline-themes')

vim-line

“‘inner line’ text object”

repository

vim-utils/vim-line

call dein#add('vim-utils/vim-line', #{
\   on_map: #{ov: ['_', ]},
\ })

vim-man

“Enhanced man support”

repository

vim-utils/vim-man

config

localcfg/plugins/vim_man.vim

call dein#add('vim-utils/vim-man', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['Man', 'Mangrep', 'Vman'],
\ })

vim-vertical-move

“Motions to move a cursor without changing the column”

repository

vim-utils/vim-vertical-move

call dein#add('vim-utils/vim-vertical-move', #{
\   on_map: #{nx: ['[v', ']v']},
\ })

targets.vim

“Provides additional text objects”

repository

wellle/targets.vim

call dein#add('wellle/targets.vim')

vim-misc

“Miscellaneous auto-load Vim scripts”

repository

xolox/vim-misc

call dein#add('xolox/vim-misc', #{
\   lazy: v:true,
\ })

Note

Lazy loaded for reverse dependency hooks.

vim-notes

“Easy note taking in Vim”

repository

xolox/vim-notes

config

localcfg/plugins/vim_notes.vim

call dein#add('xolox/vim-notes', #{
\   depends: ['vim-misc', ],
\   hook_source: 'call plugins#dein#load_config()',
\   on_cmd: ['NoteFromSelectedText', 'Note', 'SearchNotes'],
\   on_map: #{ov: ['<LocalLeader>en', ]},
\ })

vim-vimlparser

“Vimscript parser”

repository

ynkdir/vim-vimlparser

call dein#add('ynkdir/vim-vimlparser', #{
\   lazy: v:true,
\ })

Note

Lazy loaded for reverse dependency hooks.

nim.vim

“Nim language support”

repository

zah/nim.vim

call dein#add('zah/nim.vim', #{
\   if: plugins#dein#has_exec('nim'),
\   lazy: v:false,
\   on_ft: ['nim', ],
\ })

zig.vim

“File detection and syntax highlighting for the zig programming language.”

repository

ziglang/zig.vim

call dein#add('ziglang/zig.vim', #{
\   if: plugins#dein#has_exec('zig'),
\   on_ft: ['zig', ],
\ })

vim-scripts mirrors

DotOutlineTree

“An outline tree of a buffer”

repository

vim-scripts/DotOutlineTree

config

localcfg/plugins/DotOutlineTree.vim

I write my mail in reST. No, really.

call dein#add('vim-scripts/DotOutlineTree', #{
\   hook_source: 'call plugins#dein#load_config()',
\   on_ft: ['mail', 'rst'],
\ })

TaQua

“Colour scheme to fit the light/baby/soft colours of the aqua stuff”

repository

vim-scripts/TaQua

call dein#add('vim-scripts/TaQua')

bnf.vim

“Highlight BNFs”

repository

vim-scripts/bnf.vim

call dein#add('vim-scripts/bnf.vim', #{
\   lazy: v:false,
\   on_ft: ['bnf', ],
\ })

ebnf.vim

“Extended BNF (ISO/IEC 14977) Syntax”

repository

vim-scripts/ebnf.vim

call dein#add('vim-scripts/ebnf.vim', #{
\   lazy: v:false,
\   on_ft: ['ebnf', ],
\ })

summerfruit256.vim

“88/256 colour version of Armin Ronacher’s summerfruit colour scheme”

repository

vim-scripts/summerfruit256.vim

call dein#add('vim-scripts/summerfruit256.vim')

uri-ref

“Painless footer references”

repository

vim-scripts/uri-ref

call dein#add('vim-scripts/uri-ref', #{
\   on_ft: ['mail', ],
\ })

Footnotes

1

I tend to ignore plugins that aren’t available in this manner, because the effort required to manage them otherwise exceeds their usefulness.