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:
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, ...
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.
Flashes the text range that is selected by a yank command like
yip. Speed and color can be configured.
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.
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.
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.
Switch between C or C++ header and source file. Much better and more lightweight than the old 'a.vim' plugin.
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.
Align text into columns; lots of neat options.
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.
Augments VIM’s built-in increment/decrement feature (
<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.
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).
Text objects for comma-separated regions; e.g., in function parameter lists.
Motions based on sub-words in CamelCase, snake_case, dash-case, etc.
Text objects that select sub-words in CamelCase, snake_case, dash-case, etc.
Text objects based on the current indent level. Great for indentation-based languages or markup (Python, HAML, etc.)
Text object for selecting whitespace-separated columns. Useful for working with tab-separated data.
Provides a text object to select text after designated characters. Example:
ca= for changing after
Provides a text object for selecting the content of the current line (without the whitespace before and after).
Provides a text object for quickly deleting/selecting contiguous regions of whitespace.
a3) for C preprocessor regions delimited by
unfortunately not well documented, but it works flawlessly.
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).