What is Vim?
Vim (Vi IMproved) is a highly configurable text editor built to make
creating and changing any kind of text very efficient. It is an improved
version of the vi editor distributed with most UNIX systems.
I am using Vim for monitoring log files, modifying scripts and
environment files for DevOps tasks. Occasionally, I switch to frontend
and backend development, where I might forget some commands. Here are
some notes for myself, and hopefully, they help others too!
Basic Movements
h |
Move cursor left |
j |
Move cursor down |
k |
Move cursor up |
l |
Move cursor right |
gg |
Go to the first line of the file |
G |
Go to the last line of the file |
w |
Move to the beginning of the next word |
e |
Move to the end of the current word |
b |
Move to the beginning of the previous word |
0 |
Move the cursor to the beginning of the current line |
$ |
Move the cursor to the end of the current line |
W |
Move the cursor to the beginning of the next WORD (a WORD is a
sequence of non-whitespace characters) |
} |
Move the cursor to the beginning of the next paragraph |
{ |
Move the cursor to the beginning of the previous paragraph |
% |
Move the cursor to the matching bracket or parenthesis |
Editing Commands
i |
Enter insert mode before the cursor |
o |
Insert a new line below the current line and enter insert mode |
O |
Insert a new line above the current line and enter insert mode |
dd |
Delete the current line |
yy |
Yank (copy) the current line |
p |
Paste the yanked or deleted text after the cursor |
J |
join the current line with the next line |
u |
Undo the last change |
r |
Replace the character under the cursor with the next character
typed |
s |
Delete the character under the cursor and enter insert mode |
x |
Delete the character under the cursor |
Ctrl + r |
Redo the undone change |
:w |
Save the file |
:q |
Quit Vim |
:wq |
Save and quit |
:q! |
Quit without saving |
Searching and Replacing
/pattern |
Search for pattern |
n |
Repeat search in the same direction |
N |
Repeat search in the opposite direction |
:s/foo/bar/g |
Replace foo with bar in the file |
:%s/old/new/g |
Replace all instances of old with new |
Control
Ctrl + o |
Jump back to the previous position |
Ctrl + i |
Jump forward to the next position |
Ctrl + f |
Move the cursor forward one screen |
Ctrl + b |
Move the cursor backward one screen |
Ctrl + d |
Move the cursor down half a screen |
Ctrl + u |
Move the cursor up half a screen |
Ctrl + g |
Show the current cursor position in the document |
Ctrl + w |
Delete the word before the cursor |
Ctrl + y |
Copy the character above the cursor and insert it at the cursor
position |
Ctrl + e |
Copy the character below the cursor and insert it at the cursor
position |
Ctrl + r |
Enter register mode (used for copying and pasting text) |
Customisation
:set number |
Show line numbers |
:set hlsearch |
Highlight all search matches |
:set ignorecase |
Ignore case when searching |
:set tabstop=4 |
Set the tab width to 4 spaces |
:set expandtab |
Convert tabs to spaces |
:set mouse=a |
Enable mouse support in Vim |