Vim short cheatsheet

On 10 November 2009, in applications, computing, by ayoli

Here is a short but very handy (at least for me ;) ) chaetsheet for vim commands


Cursor movement



  • h – move left

  • j – move down

  • k – move up

  • l – move right

  • w – jump by start of words (punctuation considered words)

  • W – jump by words (spaces separate words)

  • e – jump to end of words (punctuation considered words)

  • E – jump to end of words (no punctuation)

  • b – jump backward by words (punctuation considered words)

  • B – jump backward by words (no punctuation)

  • 0 – (zero) start of line

  • ^ – first non-blank character of line

  • $ – end of line

  • G – Go To command (prefix with number – 5G goes to line 5)


Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.


Insert Mode – Inserting/Appending text



  • i – start insert mode at cursor

  • I – insert at the beginning of the line

  • a – append after the cursor

  • A – append at the end of the line

  • o – open (append) blank line below current line (no need to press return)

  • O – open blank line above current line

  • ea – append at end of word

  • Esc – exit insert mode


Editing



  • r – replace a single character (does not use insert mode)

  • J – join line below to the current one

  • cc – change (replace) an entire line

  • cw – change (replace) to the end of word

  • c$ – change (replace) to the end of line

  • s – delete character at cursor and subsitute text

  • S – delete line at cursor and substitute text (same as cc)

  • xp – transpose two letters (delete and paste, technically)

  • u – undo

  • . – repeat last command


Marking text (visual mode)



  • v – start visual mode, mark lines, then do command (such as y-yank)

  • V – start Linewise visual mode

  • o – move to other end of marked area

  • Ctrl+v – start visual block mode

  • O – move to Other corner of block

  • aw – mark a word

  • ab – a () block (with braces)

  • aB – a {} block (with brackets)

  • ib – inner () block

  • iB – inner {} block

  • Esc – exit visual mode


Visual commands



  • > – shift right

  • < – shift left

  • y – yank (copy) marked text

  • d – delete marked text

  • ~ – switch case


Cut and Paste



  • yy – yank (copy) the current line

  • 2yy – yank (copy) 2 lines

  • yw – yank (copy) word

  • y$ – yank to end of line

  • p – put (paste) the clipboard after cursor

  • P – put (paste) before cursor

  • dd – delete (cut) the current line

  • d5 – delete (cut) 5 lines

  • dw – delete (cut) the current word

  • x – delete (cut) current character


Exiting



  • :w – write (save) the file, but don’t exit

  • :wq – write (save) and quit

  • :q – quit (fails if anything has changed)

  • :q! – quit and throw away changes


Search/Replace



  • /pattern – search for pattern

  • ?pattern – search backward for pattern

  • n – repeat search in same direction

  • N – repeat search in opposite direction

  • :%s/old/new/g – replace all old with new throughout file

  • :%s/old/new/gc – replace all old with new throughout file with confirmations


Working with multiple files



  • :e filename – Edit a file in a new buffer

  • :bnext (or :bn) – go to next buffer

  • :bprev (of :bp) – go to previous buffer

  • :bd – delete a buffer (close a file)

  • :sp filename – Open a file in a new buffer and split window

  • ctrl+ws – Split windows

  • ctrl+ww – switch between windows

  • ctrl+wq – Quit a window

  • ctrl+wv – Split windows vertically

Tagged with:  

Leave a Reply

Premium WordPress Themes

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!