http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html The best way to print and place next to the keyboard. The most important commands that I use this: Schnellbesohlung in 10 commands: i - start insert mode (edit) (now you can enter text) Esc - exit insert mode and return to command mode : Q! - Quit without saving : Wq - save and exit u - Undo C-r - redo v - Selects one character at a y - the selected text to copy (yank) d - Cut the selected text (copy is stored in the register) P - The Copy Paste copied text in the current register before the current position The ~50 most important commands for the daily work that I remember of the top of my head: Load, Save, Exit : W - saves the file : Wq - saves the file and exits : Q - Exits : Q! - Terminates even if not everything is stored : W! - Trying to save even if read-only E - Opens for editing Editing o - Jumps to the current row to edit O - Jump over the current row to edit i - edit at the current position a - edit mode after the current character A - editing at the end of the line cw - Deletes from the cursor position to the end of the word and go into edit mode In insert mode (edit) Cn - forward autocompletion (press repeatedly to jump to the next term) Cp - autocomplete backwards (press repeatedly to jump to the next term) Esc - exit insert mode and return to command mode Select v - Selects one character at a V - Selects line by line C-v - Selects Blockwise On selection, you can apply many commands Performed with the following commands you can select: d - Cut the selected text (copy is stored in the register) y - the selected text to copy (yank) : - A command to apply to the selection (for example: s / bla / blub / replace all instances of foo by blub) W - the selection to a file : Sort - sort the rows in the selection order = - Selection of automatic formatting (indentation) gq - Wrap new selection (text descriptions very useful if you're in between which is inserted) Edit (command mode) dd - delete a row . - Repeat last action u - Undo C-r - redo D - characters from current position to end of the line p - the copy paste text in the current register after the current position P - Copy paste the text in the current register before the current position (Deleted line by line when copied / pasted and then row-wise) == - Row format automatically Move 0 $ - Jump to the top, end of line : 0: $ - Jump to the top end of the file : - Jumps to the line h, j, k, l - cursor left, down, up, move right C u - face up C d - face down / - Looking down according to criteria ? - Search for top-term (Search terms can be taken out of history with the cursor keys) n - Jump with the last search continues N - jump back with the last search * - Find word under the cursor back and just jump in # - Find word under the cursor backwards and just jump in E - continues to jump up to the next space B - jump back up to the next space % - Bracket matching: Spring by opening or closing parenthesis to return. Compile : Make - make the current directory run : Copenhagen - opens a new window with the compiler output. At Enter on a warning / error you jump automatically to the site Windows Cw , , , - A Window to the left, bottom, top, right of the current jump C w - A jump back to top C w n - A New Window Create top C w v - Create a new window next to it C-w c - Current Close Window Buffer : Bnext - Next Buffer (. With my vimrc mapped to Tab) : Bprevious - Previous Buffer (with my vimrc to - mapped Tab.) : BDelete - Close buffer ctags is a powerful tool to navigate the source code. For that you need to create a ctags file with the ctags command can generate and then with C] - To define the function / data structure / ... jump under the cursor C-T - Jump back (This works on all files in a folder away. Practically, this target in the makefile to create the ctags ctags file the updated) My .vimrc makes some things a little nicer. Simply copy it to the home folder. e.g.: t, T instead of C-] to jump back to CT for day and , b for page forward, back