Just type vimtutor in your terminal to learn the basic usage of Vim.
Although I usually use VSCode for coding, sometimes you have to edit files in the server. Mastering the basic of Vim is necessary.
1. Basic
1.1 Moving the cursor
^
k
< h l >
j
v
1.2 Exiting vim 😱
- Normally:
:q - Write and exit:
:xor:wq - Without saving changes:
:q! - Write with sudo:
:w !sudo tee %
1.3 Deletion
- Single character:
x
1.4 Insertion
- Activate insertion mode:
i - Insert from the beginning of the line:
I
1.5 Appending
- Append to this word:
a - Append to this line:
A
2. Combined Operation
2.1 Delete
d motion where 'motion' is what the operator will operate on
- Delete from cursor to the start of the next word, EXCLUDING its first character:
dw - Delete from cursor to the end of the current word, INCLUDING the last character:
de - Delete from cursor th the end of line: 'd$'
2.2 Using a count for a motion
number motion
- Moving to the start of the line:
0 - Moving the cursor 5 words forward:
5w - Moving the cursor to the end of the 3rd word forward:
3e
2.3 Using a count to delete more
operator number motion
- Delete 2 words:
d2w
2.4 Delete a whole line
- Delete current line:
dd - Delete 2 lines from current line:
2dd
2.5 Undo and redo
- Undo the last commands:
u - Undo a whole line:
U - Redo the commands:
CTRL-r
3. Put and replace
3.1 Put
- Put line below current line:
p - Put line above current line:
P
3.2 Replace
- Replace current character to 'x':
rx - Replace multiple characters:
R
3.3 Change
- Remove the rest of word and activate insert mode:
ceorcw - Remove the rest of line and activate insert mode:
c$
4. Search and substitute
4.1 Cursor location and file status
- Show your location in the file and the file status:
CTRL-g - Move to the bottom of the file:
G - Move to the start of the file:
gg - Move to line 233:
233G
4.2 Search
- Search in forward direction:
/ - Search in backward direction:
? - Find next in the same direction:
n - Find next in the opposite direction:
N - To go back to where you came from:
CTRL-o - To go forward:
CTRL-i
4.3 Matching parentheses search
- Find a match of ')', ']', or '}':
%
4.4 The substitute command
- To change the 1st occurrence of the word in the line:
:s/<old>/<new> - To change all the occurrence of the word in the line:
:s/<old>/<new>/g - To change all the occurrence of the word between line #1 and #2:
:#1,#2s/<old>/<new>/g - To change every occurence of the word in the whole file:
:%s/<old>/<new>/g - To change every occurence of the word in the whole file with a prompt:
:%s/<old>/<new>/gc
5. External
5.1 How to execute an external command
- Execute an external command:
:!<cmd>
5.2 Write to another file
- Write the whole file to another file:
:w <file> - Use
vto select the text you want to copy, then type:you will see:'<,'>, write to file::'<,'>w <file>
5.3 Insert to current file
- Insert file to current file:
:r <file> - Insert from command line output:
:r !<cmd>
6. New line and copy
6.1 Open
- Open a line below the cursor:
o - Open a line above the cursor:
O
6.2 Copy
- Copy one word:
yw - Copy from cursor to the end of the line:
y$ - Copy the whole line:
yy
6.3 Set option
- Ingore case:
:set ic - Disable ignoring case:
:set noic - 'hlsearch'(highlight) and 'incsearch'(show partial matches):
:set hls is
7. Others
7.1 Getting help
- Press
<HELP>or<F1>or type::help - Get help for command:
:help <cmd>
7.2 Completion
- Press
<TAB>or<CTRL-d>
7.3 Multiple windows
- Jump to another window:
<CTRL-w>
