Skip to content

Vim zero to one

No matter if you're a DevOps engineer, developer, or Linux enthusiast, knowing Vim helps you navigate and edit files efficiently from the terminal—especially when working on remote servers where GUI editors aren’t available.

This cheat sheet will help you get started and become productive with Vim 👇


🧠 What is Vim?

Vim (Vi IMproved) is a highly configurable terminal-based text editor used for efficient text editing. It comes pre-installed on most UNIX systems.


🚀 Opening and Exiting Vim

Command Description
vim filename Open file in Vim
:q Quit (only if no changes)
:q! Quit without saving
:w Save file
:wq or ZZ Save and quit
:x Save and quit (same as :wq)

✍️ Basic Modes

Mode Description
Normal Default mode (for navigation and commands)
Insert Press i, I, a, A, o, or O to enter
Visual Use v, V, or Ctrl+v to select text
Command-line Use : to enter commands

Press Esc anytime to return to Normal mode.


🔡 Insert Mode Shortcuts

Key Description
i Insert before cursor
I Insert at the beginning of the line
a Insert after cursor
A Insert at the end of the line
o Open new line below
O Open new line above

Key Description
h, j, k, l Move left, down, up, right
w, W Jump by word
b, B Jump back by word
0 Start of line
^ First non-blank character of line
$ End of line
gg Go to beginning of file
G Go to end of file
:n Go to line number n

📋 Copy, Paste, Delete

Command Action
yy Yank (copy) line
dd Delete line
p Paste below
P Paste above
x Delete character
u Undo
Ctrl+r Redo

🔍 Searching

Command Description
/word Search forward
?word Search backward
n Repeat search forward
N Repeat search backward

🛠️ Replace

Command Description
r<char> Replace one character
R Enter replace mode
:%s/old/new/g Replace all in file
:s/old/new/g Replace all in current line

📁 Working with Files

Command Description
:e filename Open another file
:ls List open buffers
:b2 Switch to buffer 2
:w newfile Save as new file

🧩 Plugins (Optional)

Use a plugin manager like vim-plug to extend Vim:

call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'         " File explorer
Plug 'junegunn/fzf.vim'           " Fuzzy finder
call plug#end()

📚 Resources