Last Updated: September 17, 2018
· shiva
Img 1652 small

Basic Vim commands - For getting started

Started learning to use Vim .. Some simple commands to get started

Vim has two mode .

1. Insert mode (Where you can just type like normal text editor. Press i for insert mode)

2. Command mode (Where you give commands to the editor to get things done . Press ESC for command mode)

Most of them below are in command mode

  • x - to delete the unwanted character
  • u - to undo the last the command and U to undo the whole line
  • CTRL-R to redo
  • A - to append text at the end
  • :wq - to save and exit
  • :q! - to trash all changes
  • dw - move the cursor to the beginning of the word to delete that word
  • 2w - to move the cursor two words forward.
  • 3e - to move the cursor to the end of the third word forward.
  • 0 (zero) to move to the start of the line.
  • d2w - which deletes 2 words .. number can be changed for deleting the number of consecutive words like d3w
  • dd to delete the line and 2dd to delete to line .number can be changed for deleting the number of consecutive words

The format for a change command is: operator [number] motion
-operator - is what to do, such as d for delete
- [number] - is an optional count to repeat the motion
- motion - moves over the text to operate on, such as w (word),
$ (to the end of line), etc.

  • p - puts the previously deleted text after the cursor(Type dd to delete the line and store it in a Vim register. and p to put the line)

  • r - to replace the letter e.g press re to replace the letter with e

  • ce - to change until the end of a word (place the cursor on the u in lubw it will delete ubw )

  • ce - deletes the word and places you in Insert mode

  • G - to move you to the bottom of the file.

  • gg - to move you to the start of the file.
    Type the number of the line you were on and then G

  • % to find a matching ),], or }

  • :s/old/new/g to substitute 'new' for 'old' where g is globally

  • / backward search n to find the next occurrence and N to search in opposite direction

  • ? forward search

  • :! to run the shell commands like :!dir, :!ls

  • :w - TEST (where TEST is the filename you chose.) . Save the file

  • v - starts visual mode for selecting the lines and you can perform operation on that like d delete

  • :r - Filename will insert the content into the current file

  • R - to replace more than one character

  • y - operator to copy text using v visual mode and p to paste it

  • yw - (copy)yanks one word

  • o - opens a line below the cursor and start Insert mode.

  • O - opens a line above the cursor.

  • a - inserts text after the cursor.

  • A - inserts text after the end of the line.

  • e - command moves to the end of a word.

  • y - operator yanks (copies) text, p puts (pastes) it.

  • R - enters Replace mode until <ESC> is pressed.

  • ctrl-w to jump from one window to another

type a command :e and press ctrl+D to list all the command name starts with :e and press tab to complete the command

Say Thanks

9 Responses
Add your response


Also nice is :xa which save and quit all files. In case to use it as ZZ (save and quit) I have mapped some more:

map ZX :cq " quit and return error (helpful when using Vim with Git)
map ZA :qa " quit all buffers
map ZS :xa " quit and save all buffers 
over 1 year ago ·
Img 1652 small

Nice .. Thanks @hauleth :)

over 1 year ago ·

For beginners/intermediate: Vim Revisited is my article where I present similar information but in a more structured format.

over 1 year ago ·
Img 1652 small

@mislav i think the links is broken

over 1 year ago ·

Thanks, bad paste. Now fixed

over 1 year ago ·

There's also :x, which contextually saves the current document if changes have been made and exits, or simply exits if no changes have been made. Equivalent to :wq

over 1 year ago ·

As a relatively new vim user, I'm also glad to be repeatedly exposed to command lists such as this. It really helps.
I recommend new users go pimp out there vim with the plugins ASAP to get a better impression of its coolness.
Me, I hooked up to this fellas github & followed his README to get a great series of bundles that all auto-install & bring colour & interest.

over 1 year ago ·

Thank you for the great article!

2 months ago ·
16265335 1808193352783097 4181252962508046803 n

Thanks for the sharing interesting information. I like this post. I think, many people get new knowledge and will be more productive.
Chris, PHP Developer

2 days ago ·