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
autoloaded functions used in this file
Repositories¶
dein.vim
¶
“A dark powered Vim/Neovim plugin manager”
- repository
- config
- functions
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
- early setup
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
- config
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
- early setup
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
call dein#add('ConradIrwin/vim-bracketed-paste', #{
\ on_event: ['InsertEnter', ],
\ })
dwm.vim
¶
“Tiled Window Management for Vim”
- repository
- early setup
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
- config
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
- config
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
- config
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
call dein#add('Shougo/vimproc', #{
\ build: 'make',
\ lazy: v:true,
\ })
Note
Lazy loaded for reverse dependency hooks.
ultisnips
¶
“The ultimate plugin for snippets”
- repository
- config
- functions
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
- early setup
- config
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
- config
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
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
call dein#add('cespare/vim-toml')
Colorizer
¶
“Colour colour names and codes”
- repository
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
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
- config
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
- config
call dein#add('chrisbra/Replay', #{
\ hook_source: 'call plugins#dein#load_config()',
\ on_cmd: ['ListRecords', 'ScreenCapture', 'StartRecord'],
\ })
SaveSigns.vim
¶
“Save signs across sessions”
- repository
call dein#add('chrisbra/SaveSigns.vim', #{
\ if: has('signs'),
\ on_cmd: ['SaveSigns', ],
\ })
csv.vim
¶
“A filetype plugin for CSV files”
- repository
- config
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
- early setup
- config
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
call dein#add('chrisbra/vim_faq', #{
\ if: v:version >= 600,
\ lazy: v:true,
\ })
vim-codereview
¶
“GitHub pull request-based code reviews”
- repository
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
call dein#add('cstrahan/vim-capnp', #{
\ lazy: v:false,
\ on_ft: ['capnp', ],
\ })
jedi-vim
¶
“A VIM binding to the jedi autocompletion library”
- repository
- config
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
- config
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
- early setup
- config
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
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
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
- config
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
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
call dein#add('elazar/visSum.vim', #{
\ on_map: #{x: ['<LocalLeader>su', ]},
\ })
regex
¶
“Allows you to test regular expressions”
- repository
- config
- functions
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
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
call dein#add('guns/xterm-color-table.vim', #{
\ on_cmd: plugins#dein#suffix('XtermColorTable', ['', 'V']),
\ })
dein-command.vim
¶
“Utility commands for
dein.vim
”
- repository
call dein#add('haya14busa/dein-command.vim', #{
\ on_cmd: ['Dein', ],
\ })
vim-snippets
¶
“Snippet files for various programming languages”
- repository
- config
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
- early setup
- config
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
call dein#add('idanarye/vim-yankitute', #{
\ on_cmd: ['Yankitute', ],
\ })
vim-gnupg
¶
“Transparent editing of gpg encrypted files”
- repository
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
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
- config
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
- early setup
- config
- functions
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
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
- config
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
- early setup
- config
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
- config
call dein#add('junegunn/goyo.vim', #{
\ hook_source: 'call plugins#dein#load_config()',
\ on_cmd: ['Goyo', ],
\ })
vim-emoji
¶
“Emoji support”
- repository
call dein#add('junegunn/vim-emoji', #{
\ lazy: v:false,
\ on_func: ['emoji', ],
\ })
vim-peekaboo
¶
“Preview support for registers”
- repository
- config
- functions
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
- config
call dein#add('junkblocker/patchreview-vim', #{
\ on_cmd: plugins#dein#suffix('Review',
\ ['Diff', 'Patch', 'ReversePatchReview']),
\ })
vim-eighties
¶
“Automatically resizes your windows”
- repository
- config
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
- config
- functions
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
- config
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
call dein#add('kana/vim-textobj-fold', #{
\ depends: ['vim-textobj-user', ],
\ on_func: ['textobj', ],
\ })
vim-textobj-user
¶
“Create your own text objects”
- repository
call dein#add('kana/vim-textobj-user', #{
\ lazy: v:false,
\ on_func: ['textobj', ],
\ })
nyancat-vim
¶
- repository
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
- config
call dein#add('kshenoy/vim-signature', #{
\ hook_source: 'call plugins#dein#load_config()',
\ if: has('signs'),
\ })
moonscript-vim
¶
“Language support for moonscript”
- repository
call dein#add('leafo/moonscript-vim', #{
\ lazy: v:false,
\ on_ft: ['moon', ],
\ })
vim-ledger
¶
“Language support for ledger”
- repository
- early setup
- config
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
- config
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
- early setup
- config
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
- config
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
call dein#add('mgrabovsky/vim-cuesheet', #{
\ lazy: v:false,
\ on_ft: ['cuesheet', ],
\ })
vim-startify
¶
“The fancy start screen”
- repository
- config
- functions
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
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
- early setup
call dein#add('mildred/vim-bufmru', #{
\ on_cmd: ['BufMRU', ],
\ on_map: #{n: ['[bufmru]', ]},
\ })
vim-jinja
¶
“Language support for jinja”
- repository
- config
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
- config
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
- config
call dein#add('nathanaelkane/vim-indent-guides', #{
\ hook_source: 'call plugins#dein#load_config()',
\ })
vim-beancount
¶
“Filetype plugin for beancount files”
- repository
call dein#add('nathangrigg/vim-beancount', #{
\ lazy: v:false,
\ on_ft: ['beancount', ],
\ })
vim-clevertab
¶
“Tiny replacement for Supertab”
- repository
- config
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
call dein#add('nvie/vim_bridge', #{
\ lazy: v:false,
\ on_cmd: ['python', ],
\ })
html5.vim
¶
“HTML5 + inline SVG omnicomplete function, indent and syntax”
- repository
call dein#add('othree/html5.vim', #{
\ lazy: v:false,
\ on_ft: ['html', ],
\ })
Yuescript-vim
¶
“Adds syntax highlighting and indent support for YueScript”
- repository
call dein#add('pigpigyyy/Yuescript-vim', #{
\ lazy: v:false,
\ on_ft: ['yue', ],
\ })
vim-textobj-quote
¶
“Better support for typographic (‘curly’) quote characters”
- repository
- config
- functions
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
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
- early setup
- config
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
- early setup
- config
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
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
- early setup
- config
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
call dein#add('sjl/splice.vim', #{
\ on_cmd: ['SpliceInit', ],
\ })
vim-space
¶
“Smart space key”
- repository
- config
call dein#add('spiiph/vim-space', #{
\ hook_source: 'call plugins#dein#load_config()',
\ on_map: #{n: ['<space>', ]},
\ })
vim-vimlint
¶
“Linter for vim script”
- repository
- config
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
- early setup
- config
- functions
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
call dein#add('terryma/vim-expand-region', #{
\ on_map: #{v: ['+', '_']},
\ })
vim-visual-multi
¶
“Multiple selections/cursors”
- repository
- 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
- early setup
- config
call dein#add('preservim/nerdtree', #{
\ on_cmd: ['NERDTree', ],
\ })
wordnet.vim
¶
“Look up word definitions with wordnet”
- repository
- early setup
- config
- functions
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
- config
call dein#add('tomasr/molokai', #{
\ hook_source: 'call plugins#dein#load_config()',
\ })
vim-exchange
¶
“Easy text exchange operator”
- repository
- config
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
call dein#add('tommcdo/vim-lion', #{
\ on_map: #{n: ['gl', 'gL']},
\ })
vim-abolish
¶
“Language friendly searches, substitutions, and abbreviations”
- repository
call dein#add('tpope/vim-abolish', #{
\ on_cmd: ['Abolish', 'S'],
\ on_map: #{n: ['cr', ]},
\ })
vim-commentary
¶
“Comment stuff out”
- repository
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
- early setup
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
call dein#add('tpope/vim-jdaddy', #{
\ on_ft: ['json', ],
\ })
vim-obsession
¶
“Continuously updated session files”
- repository
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
- config
- functions
call dein#add('tpope/vim-projectionist', #{
\ hook_source: 'call plugins#dein#load_config()',
\ })
vim-repeat
¶
“Repeat for plugin maps”
- repository
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
call dein#add('tpope/vim-rhubarb', #{
\ depends: ['vim-fugitive', ],
\ if: plugins#dein#has_exec('git'),
\ })
vim-rsi
¶
“Readline style insertion”
- repository
call dein#add('tpope/vim-rsi', #{
\ on_event: ['CmdlineEnter', 'InsertEnter'],
\ })
vim-sensible
¶
“One step above
'nocompatible'
mode”
- repository
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
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
- config
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
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
- config
call dein#add('tpope/vim-unimpaired', #{
\ hook_source: 'call plugins#dein#load_config()',
\ })
zoomwintab.vim
¶
“A simple zoom window plugin”
- repository
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
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
call dein#add('tweekmonster/startuptime.vim', #{
\ on_cmd: ['StartupTime', ],
\ })
vim-airline
¶
“Lean & mean status/tabline for vim that’s light as air”
- repository
- config
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
call dein#add('vim-airline/vim-airline-themes')
vim-line
¶
“‘inner line’ text object”
- repository
call dein#add('vim-utils/vim-line', #{
\ on_map: #{ov: ['_', ]},
\ })
vim-man
¶
“Enhanced man support”
- repository
- config
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
call dein#add('vim-utils/vim-vertical-move', #{
\ on_map: #{nx: ['[v', ']v']},
\ })
targets.vim
¶
“Provides additional text objects”
- repository
call dein#add('wellle/targets.vim')
vim-misc
¶
“Miscellaneous auto-load Vim scripts”
- repository
call dein#add('xolox/vim-misc', #{
\ lazy: v:true,
\ })
Note
Lazy loaded for reverse dependency hooks.
vim-notes
¶
“Easy note taking in Vim”
- repository
- config
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
call dein#add('ynkdir/vim-vimlparser', #{
\ lazy: v:true,
\ })
Note
Lazy loaded for reverse dependency hooks.
nim.vim
¶
“Nim language support”
- repository
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
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
- config
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
call dein#add('vim-scripts/TaQua')
bnf.vim
¶
“Highlight BNFs”
- repository
call dein#add('vim-scripts/bnf.vim', #{
\ lazy: v:false,
\ on_ft: ['bnf', ],
\ })
ebnf.vim
¶
“Extended BNF (ISO/IEC 14977) Syntax”
- repository
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
call dein#add('vim-scripts/summerfruit256.vim')
uri-ref
¶
“Painless footer references”
- repository
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.