# My Favorite Vim Plugins

I use Vim and Visual Studio Code as my main text editors, and I have found multiple plugins to both which add nice features to the respective program. In this post, I will go over my favorite Vim plugins. I install these plugins as part of my dotfiles setup, so it is easy to set up Vim with plugins on each system I use.

## Core Plugins

These plugins are ones that I highly recommend and add what I would consider core features to Vim.

### vim-commentary

Comment stuff out. Use gcc to comment out a line and gc to comment out a motion.

### vim-gitgutter

Show the file’s git diff status in the gutter.

### vim-vinegar

Makes netrw work much better. The main addition is - to go up a directory.

### vim-unimpaired

Pairs of handy bracket mappings. They allow [ or ] followed by a character to jump forward or backward. ]q is :cnext. [q is :cprevious. ]a is :next. [b is :bprevious. See the documentation for the full set of 20 mappings and mnemonics.

### vim-rename

Rename a buffer within vim and on disk. Use :saveas <newfile> to rename the file and remove the old file from disk.

### vim-textobj-entire

Provides text objects ae and ie which represent the entire buffer.

### vim-capslock

Press <C-G>c in insert mode to toggle a temporary software caps lock. I used this when I didn’t have a caps lock since I rebound it to control. Now I don’t use this as much since pressing both shift keys is my caps lock.

### vim-textobj-user

Create your own text objects easily. Used by other plugins.

### vim-repeat

Enables repeating supported plugin maps with ..

### vim-surround

Adds surround text mapping with s. I.e., cs"' to change " to ' surrounding text.

Start a * or # search from a visual block.

### vim-abolish

Easily search for, substitute, and abbreviate multiple variants of a word.

### calendar-vim

Open a calendar within Vim. Use :Calendar to open.

### vim-exchange

Easy text exchange operator for Vim.

#### Mappings

cx

On the first use, define the first {motion} to exchange. On the second use, define the second {motion} and perform the exchange.

cxx

Like cx, but use the current line.

X

Like cx, but for Visual mode.

cxc

Clear any {motion} pending for exchange.

#### Some notes

If you’re using the same motion again (e.g. exchanging two words using cxiw), you can use . the second time. If one region is fully contained within the other, it will replace the containing region.

### vim-textobj-sentence

Improving on Vim’s native sentence text object and motion.

### Taboo

Few utilities for pretty tabs. :TabooRename <name> to rename a tab.

## Awesome Added Features

These plugins add cool new features to Vim.

### tabular

Vim script for text filtering and alignment. Amazing plugin for aligning LaTeX tables and assignment lists.

### ctrlp.vim

Use <c-p> for a fuzzy finder. Easily search for files.

### vim-buffergator

List, select, and switch between buffers. Use <Leader>b to open the buffer side panel.

### tagbar

Display tags in a window, ordered by scope. Used to navigate quickly within a file. Use <Leader>cc to open.

### supertab

Perform all your vim insert mode completions with Tab.

### undotree

Undo history visualizer for Vim. Use :UndotreeToggle to start. This has saved me in the cases where I undid some changes, then accidentally made a new change but wanted to redo it to the previous state.

### vim-autocorrect

Correct common typos and misspellings as you type in Vim. Note: this plugin is slow to load, but I still find it super helpful and less annoying than Word’s autocorrect.

### Cheat.sh-vim

Browse cheat sheets from cheat.sh directly from vim.

## Note-taking

These are plugins that go alone with taking notes in vim. See Personal Knowledge Base and Productivity Presentation for more information on note-taking.

### vimwiki

A Personal Wiki for Vim. I used this as my primary note-taking tool before switching to OneNote. See Personal Knowledge Base and Productivity Presentation for more information on my note-taking system.

### vim-zettel

Vim plugin to implement Zettelkasten with Vimwiki.

### fzf

fzf wrappers for vim.

### notational-fzf-vim

Notational Velocity for Vim. It is used to fuzzy search through a Vimwiki.

## Writing Tools

These are the plugins that help with the paper writing process in Vim.

### vimtex

A Vim plugin for editing LaTeX files. This is my favorite of the many LaTeX plugins.

### vim-dict

Dictionary lookup inside Vim. To lookup a work use the :Dict command.

### vim-online-thesaurus

Online thesaurus lookup. Use <Leader>cs to query and replace the current word.

### vim-instant-markdown

Instant Markdown previews with Vim. Use :InstantMarkdownPreview to start.

### LanguageTool

Grammar checker using LanguageTool for Vim.

### vim-pencil

Plugin to help Vim be more friendly for writing prose. It handles automatic wrapping of text.

### goyo.vim

Distraction-free writing in Vim.

## Coding or Language Support

### vim-flake8

Verify Python syntax with flake8. To use press <F7>.

### vim-scala

Add Scala programming language support to Vim.

### vim-fish

Vim support for editing fish scripts.

### DoxygenToolkit.vim

Simplify Doxygen documentation in C, C++, Python.

### vim-gdscript3

Support syntax for Godot script.

## Plugins used for code and colorscheme debugging

Trace highlighting with \hlt.

### xterm-color-table.vim

Displays all 256 terminal colors with the command :XtermColorTable.

### hexHighlight

GVim plugin to highlight hex codes to help with tweaking colors.

### Conque-GDB

GDB command-line interface and terminal emulator in Vim.

## Color Themes

Note: I don’t use these color schemes since I created my own color scheme.

### palenight.vim

Soothing color scheme for vim. Recommended by https://blog.pabuisson.com/2018/06/favorite-color-schemes-modern-vim-neovim/

### vim-one

Adaptation of one-light and one-dark (Atom) colorschemes for vim. Recommended by https://blog.pabuisson.com/2018/06/favorite-color-schemes-modern-vim-neovim/

### molokai

Molokai color scheme for Vim. Recommended by https://www.slant.co/topics/480/~best-vim-color-schemes

### gruvbox

Retro groove color scheme for Vim. Recommended by https://www.slant.co/topics/480/~best-vim-color-schemes

## Unused but still might be helpful

These are plugins that I no longer use.

### vim-fugitive

A git wrapper for Vim.

### YouCompleteMe

A code-completion engine for vim. Note: I don’t use this one anymore since it was a bigger pain to set up than the benefit of using it.

### vim-smooth-scroll

Makes scrolling in Vim nice and smooth. (Currently, I do not have this plugin mapped.)

### vim-qargs

Adds a Qargs utility command to populate the argument list from the files in the quickfix list. Note: The functionality provided by this project has been made largely obsolete in recent versions of Vim.

Tags:

Categories:

Updated: