If you are new to Vim or you have accidentally opened this editor where you type and nothing happens and you are stuck in this plain maze and don't know how to exit?
To exit you such press :q and hit enter. Nothing happened and you are in still in Vim then press escape and then type :q
Now that you know how to exit. Let's dig in more, there are two modes in Vim.
Insert mode : Press i for insert mode. Where you can just type like a normal text editor.
Command mode : Press ESC for command mode. Where you give commands to the editor to get things done. You can see below left-hand corner of the screen what you are typing.
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 the 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.
To move the cursor to specific line number press the number and then G, for example, 3 and G will move the cursor to the third line
% – 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 the 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 an 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 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
To learn more on Vim, if you in Mac or Linux you can just type the command vimtutor. which has detailed documentation
Below are some fun way to learn Vim