Vim is one of the most powerful and efficient text editors, widely used by developers and system administrators. While Vim may seem intimidating at first, learning its commands step by step will make you a more productive user. This guide will walk you through essential Vim commands in an organized manner.
1. Getting Started with Vim
Opening a File in Vim
To start Vim, open a terminal and type:
vim filename
- If the file exists, it will open in Vim.
- If the file does not exist, Vim will create a new one.
Exiting Vim
Vim does not follow traditional GUI conventions for quitting. You need to use the following commands:
-
:q
→ Quit Vim (only if no changes were made). -
:q!
→ Quit without saving changes. -
:wq
or:x
→ Save and exit. -
ZZ
→ Save and exit (shortcut in normal mode).
2. Understanding Vim Modes
Vim operates in different modes:
Mode | Description | Key to Access |
---|---|---|
Normal | Default mode for navigation and commands | Press Esc
|
Insert | Used for typing and editing text | Press i , a , o
|
Visual | Used for selecting text | Press v , V , or Ctrl+v
|
Command-line | Used for running commands | Press :
|
3. Basic Navigation Commands
Command | Action |
---|---|
h |
Move left |
l |
Move right |
j |
Move down |
k |
Move up |
w |
Jump to the start of the next word |
e |
Jump to the end of the current/next word |
b |
Jump to the start of the previous word |
0 |
Move to the beginning of the line |
^ |
Move to the first non-blank character of the line |
$ |
Move to the end of the line |
gg |
Move to the beginning of the file |
G |
Move to the end of the file |
:n |
Move to line number n (e.g., :10 goes to line 10) |
4. Editing and Inserting Text
Command | Action |
---|---|
i |
Insert before cursor |
I |
Insert at beginning of line |
a |
Append after cursor |
A |
Append at end of line |
o |
Open a new line below |
O |
Open a new line above |
r |
Replace a single character |
R |
Replace multiple characters (overwrite mode) |
5. Deleting, Copying, and Pasting Text
Command | Action |
---|---|
x |
Delete character under the cursor |
X |
Delete character before the cursor |
dw |
Delete word |
dd |
Delete entire line |
D |
Delete from cursor to end of line |
yy |
Copy (yank) the current line |
yw |
Copy (yank) a word |
p |
Paste after cursor |
P |
Paste before cursor |
u |
Undo last action |
Ctrl + r |
Redo last undone action |
6. Searching and Replacing Text
Searching for Text
Use the /
or ?
command to search:
-
/pattern
→ Search forward for "pattern". -
?pattern
→ Search backward for "pattern". -
n
→ Move to the next occurrence. -
N
→ Move to the previous occurrence.
Replacing Text
Use :s
for substitution:
-
:s/old/new/g
→ Replace "old" with "new" in the current line. -
:%s/old/new/g
→ Replace all occurrences in the file. -
:%s/old/new/gc
→ Replace all occurrences with confirmation.
7. Working with Multiple Files and Tabs
Opening Multiple Files
-
vim file1 file2
→ Open multiple files. -
:n
→ Switch to the next file. -
:prev
→ Switch to the previous file.
Working with Tabs
-
:tabe filename
→ Open a file in a new tab. -
gt
→ Switch to the next tab. -
gT
→ Switch to the previous tab. -
:tabclose
→ Close the current tab.
8. Splitting Windows in Vim
Command | Action |
---|---|
:split filename |
Open file in a horizontal split |
:vsplit filename |
Open file in a vertical split |
Ctrl + w + w |
Move between splits |
Ctrl + w + h |
Move to the left split |
Ctrl + w + l |
Move to the right split |
Ctrl + w + j |
Move to the lower split |
Ctrl + w + k |
Move to the upper split |
9. Saving and Exiting Vim
Command | Action |
---|---|
:w |
Save changes |
:wq or :x
|
Save and quit |
ZZ |
Save and quit |
:q! |
Quit without saving |
:w filename |
Save as a new file |
10. Customizing Vim with .vimrc
Vim allows customization using the ~/.vimrc
configuration file. Some useful settings:
set number " Show line numbers
set autoindent " Enable automatic indentation
set tabstop=4 " Set tab width to 4 spaces
set shiftwidth=4 " Set indentation width
syntax on " Enable syntax highlighting
Conclusion
Mastering Vim takes time, but starting with these basic commands will make you more efficient. Keep practicing, and soon, you'll be navigating, editing, and managing files like a pro! 🚀
Did you find this guide helpful? Let me know if you need more Vim tips! 😃