Bash has two input modes - emacs and vi. This is vi input/editing mode keyboard shortcut cheat sheet.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bash-vi-editing-mode-cheat-sheet.txt initial bash vi editing mode cheat sheet import Nov 27, 2009


Bourne again shell (bash) has two input editing modes - emacs and vi. This is
vi editing mode cheat sheet. It lists all the keyboard shortcuts available
in vi mode. It will make you much more productive in the shell.

It was created by Peteris Krumins (
His blog is at  --  good coders code, great reuse.

The cheat sheet is released under GNU Free Documentation License.

The cheat sheet was created as supplementary material to my popular article
"Working Productively in Bash's Vi Command Line Editing Mode". This article
can be read on my website at the following address:

This cheat sheet is the 2nd in the series of working efficiently on the
command line.

The first article is "Bash Emacs Editing Mode Cheat Sheet":

And the third is "The Definitive Guide to Bash Command Line History":


The vi editing mode cheat sheet contains the following shortcuts:

    * Switching to command mode.
    * Commands for entering the input mode.
    * Basic movement commands.
    * Character finding commands.
    * Deletion commands.
    * Undo, redo, copy/paste commands.
    * Commands for shell history.
    * Completion commands.
    * Miscellaneous commands.

It's available in .txt (ascii), .pdf and latex (.tex) formats. The latest
version of this cheat sheet can always be downloaded here:


To create a new .pdf from latex's .tex, use pdflatex command:

    $ pdflatex bash-vi-editing-mode-cheat-sheet.tex

This will produce bash-vi-editing-mode-cheat-sheet.pdf


Have fun and be more productive on command line!

Peteris Krumins