You won't find the "NERDTree", "ALE", "surround-vim" and all the other big names on this list - there's already a gazillion of VIM plugin lists with those around.
While some of the following plugins might not have thousands of stars on Github they are nevertheless absolute gems and have been reliable and invaluable daily companions of mine.
My other lists:
Quickfix Reflector
Super intuitive mass-editing within hundreds of files using VIM's quickfix list.
- use grep or any other method to populate the quickfix list with file locations
- edit quickfix entries with all VIM tools (change, substitute, ...)
- or remove quickfix lines of files that you don't want to be affected by changes
- apply all changes to the actual target locations simply by saving the quickfix list
- do more edits, saves, ...
Traces
Live highlight of patterns and range commands (substitute, global, β¦). Super useful when crafting complex regex searches and/or replacements.
Poppy
Highlights different levels of matching delimiters (parentheses, braces, β¦) in different colors.
Cursorword
Underlines all occurrences of the word under the cursor. Super fast and useful for spotting variable occurrences or spelling errors in code and redundancy in prose.
vim-visual-multi
Multiple Cursors for VIM. For the occasions when VIM's gn
motion isn't powerful enough or you need more visual feedback.
Very nice plugin! Substantially faster, less buggy, better visual feedback and a lot more features than the old vim-multiple-cursors plugin. Actually the first incarnation of multiple cursors in VIM that I actually like and use every day.
Highlighted Yank
Flashes the text range that is selected by a yank command like yip
. Speed and color can be configured.
vim-clap
Generic finder and dispatcher like vim-fzf. Lets you fuzzy find files, commands, help topics, etc. Still very young, but seems very promising and works smoothly. You should use it together with the insanely fast ripgrep (instead of grep) as file system crawler. I found it to be faster and more convenient than vim-fzf and also easier to extend.
Vista
Provides a window for viewing and searching LSP symbols and/or tags. Similar, but faster and more feature rich than the classic tagbar plugin. Works really well with LSP clients like ALE and integrates with vim-clap.
asynctasks.vim
Lets you manage and excute tasks asynchronously (build, clean, run, ...) based on simple task files. Itβs also super easy to define different profiles for release, build, Linux, Windows, etc.
SHSwitch
Switch between C or C++ header and source file. Much better and more lightweight than the old 'a.vim' plugin.
NeoDebug
Debug with gdb/pdb/lldb in VIM. Shows current instruction and breakpoints in code; windows for debugger console, locals, registers, stacks, threads, breakpoints, disassembly, watch expressions. Similar to, but more user friendly and feature-rich than VIM's termdebug package. I found that it just works without any setup hassle.
EasyAlign
Align text into columns; lots of neat options.
Replace With Register
Replace a motion/text object with the contents of the default register without changing the register content.
Tip: In Vim 9 you can use upper case P
in visual mode to paste without affecting registers.
Cycle
Augments VIMβs built-in increment/decrement feature (<C-a>
/<C-x>
) so that you can also toggle between pairs of words or cycle through lists of related words like true/false, yes/no, weekdays, months, etc. You can also add your own word lists.
Surround-Funk
Commands & text objects for changing/deleting/yanking surrounding function names or function calls (name + arguments in parentheses).
You should make sure that the mappings don't interfere with the classic Surround plugin (esp. ys
). You can simply deactivate the defaults and define mappings in the vimrc (just copy them from the readme and adapt them to your liking).
Angry Text Object
Text objects for comma-separated regions; e.g., in function parameter lists.
CamelCaseMotion
Motions based on sub-words in CamelCase, snake_case, dash-case, etc.
Variable Segment Text Object
Text objects that select sub-words in CamelCase, snake_case, dash-case, etc.
Indent Text Object
Text objects based on the current indent level. Great for indentation-based languages or markup (Python, HAML, etc.)
Word Column Text Object
Text object for selecting whitespace-separated columns. Useful for working with tab-separated data.
After Text Object
Provides a text object to select text after designated characters. Example: ca=
for changing after =
Line Text Object
Provides a text object for selecting the content of the current line (without the whitespace before and after).
Whitespace Text Object
Provides a text object for quickly deleting/selecting contiguous regions of whitespace.
#ifdef Text Object
Text objects i#
/a#
(alternative i3
/a3
) for C preprocessor regions delimited by #ifdef
, #ifndef
, #else
, #elif
, #endif
, etc.;
unfortunately not well documented, but it works flawlessly.
UndoTree
Shows a per-file undo tree and let's you navigate it (switch between revisions).
CssColor
Live preview of colors for constants like red
, #ffa
, rgb(0,0,255)
, etc.
Signature
Shows marks in the sign column. Lets you also define additional markers with m1
, m2
, etc. that can be on multiple lines at the same time (great for tagging lines that belong to one "topic").
nnn.vim
Integration of the excellent command line file explorer nnn into vim. Offers commands for file picking and a file explorer window. Substantially faster than NERD Tree and a no-brainer if you already use nnn (which you should).
File Renamer
Lets you (mass) rename files in a directory using vim editing commands. Can be quite useful and way faster and a lot more usable than other renaming tools or shell scripts.
AM Colors
amdark
My personal color scheme(s). Dark scheme, light scheme and hight-contrast light scheme for presentations.
amlight
ampresent - High Contrast Light Scheme
Vimcolorschemes
An aggregator site that lists colorschemes from GitHub. Shows preview images and let's you browse schemes by category (light, dark), recently updated, trending, top, etc.
Top comments (0)