Every Vim Binding I Know

October 1, 2023

I love vim. It makes editing text fast and fun. The learning-curve is admittedly steep, however, and the return-on-investment for seeking new bindings looks too much like the reciprocal function. I have nevertheless spent several hours reading the majority of the vim user manual and searching for new vim tips online. That information was terribly uncompressed, though, so it took way longer than it could have. The goal of this post is to compress all the information I’ve collected to make it readily available for fellow vim users. Please note:

  1. Explanation is omitted in favor of conciseness
  2. Angle-brackets (<>) denote meta-meaning (except when they’re used literally)
  3. Some especially specialized bindings have been excluded (for example, the list of marks is purposely not exhaustive): consider this a list of “generally useful” bindings
  4. This list is far from complete, especially the /usr/bin/vim section
  5. If you notice a useful binding that isn’t on the list, please contact me

Generalized Vim Bindings1

Normal Mode

Motions

Special Motions (only valid when vim is expecting a motion)

Actions

Parameterized Actions

Insert Mode

Visual Mode (and Visual Line Mode)

Visual Block Mode

Key Combinations

Marks

/usr/bin/vim

Normal Mode

Command Mode

Searching

Relevant Regex

Offsets

Tools / Command Line Options


  1. This section should apply to ports of vim bindings that aren’t necessarily /usr/bin/vim (i.e. other IDEs). ↩︎