What Is Normal Mode in Vim?
Vim is a modal editor, meaning it has multiple modes for different tasks. Normal Mode is Vim’s default state. When you launch Vim and haven’t typed anything yet, you’re in Normal Mode.
In Normal Mode, you’re not writing code or text. Instead, you’re giving commands: delete a word, move to the next paragraph, yank a line, repeat the last action — all using simple key sequences.
Why Vim Starts in Normal Mode
Other editors start in typing mode, but Vim starts in Normal Mode. Why? Because editing isn’t just typing — it’s moving, selecting, modifying, and repeating actions.
In Normal Mode, every key is a command. This gives you instant access to:
Precise motion (jump to word, paragraph, or function)
Powerful editing (change a word, delete a block, format lines)
Macro execution
Repeating and undoing actions instantly
Normal Mode is designed for speed — no modifier keys, no menus — just your fingers on the home row, slicing through text like a ninja.
Real Example: Repeating Edits with the Dot Command
One of the most powerful tools in Normal Mode is the dot (.
) command, which repeats your last change.
Scenario:
You have a list of lines in a config file and want to append a semicolon at the end of each line.
var foo = 1
var bar = 'a'
var foobar = foo + bar
In Vim Normal Mode:
Move to the first line.
Press
A;
to append a semicolon.Press
Esc
to return to Normal Mode.Press
j.
(down and repeat) to apply the same change to the next lines.
💡 This is called the Dot Formula — one keystroke to move, one to repeat.
Motion + Operator = Power
In Vim Normal Mode, most commands are composed of two parts:
Operator: What you want to do (e.g., delete
d
, changec
, yanky
)Motion: Where you want to apply it (e.g., to the end of a word
w
, to a paragraph}
)
Example:
To delete to the end of a word, press dw
.
To change a sentence, press cas
(change a sentence).
To delete from cursor to end of file, use dG
.
This makes editing in Vim modular and predictable, unlike Ctrl+Shift+Alt combos in other editors.
Navigating Smartly: Motions in Normal Mode
Some useful motions to use in Normal Mode:
w
– move to next wordb
– move back to previous word0
– move to start of line^
– move to first non-whitespace character$
– move to end of linegg
– move to start of fileG
– move to end of filefx
– move to next occurrence of characterx
on the line;
and,
– repeat last character search forward/backward
Real Example: Pad Characters with Spaces
Let’s say you have this line:
var foo = "method("+argument1+","+argument2+")";
You want to add spaces around the +
signs. Here’s how you can do it in Normal Mode:
f+
– jump to first+
s + ␣ <Esc>
– replace+
with a space-padded+
;.
– jump to next+
and repeat the changeRepeat
;.
for all other+
signs
This is more efficient than doing a find-and-replace with a risk of replacing unintended matches.
Undos in Logical Chunks
In Vim, everything you do in Insert Mode becomes a single change — until you press Esc
.
Want to undo your last sentence? Leave Insert Mode more often!
iThis is a sentence.
Now one u
in Normal Mode will undo the whole sentence, not just the last word.
Pro tip: Think in thought-sized chunks. Press Esc
between them.
Combining Commands for Super Speed
Vim has built-in compound commands that wrap multiple steps into one.
Compound | Equivalent | Description |
---|---|---|
A | $a | Append at end of line |
C | c$ | Change to end of line |
I | ^i | Insert at beginning |
o | A<CR> | Open line below |
O | kA<CR> | Open line above |
Using these smartly keeps you out of Insert Mode, which means you stay faster and focused.
Real Example: Safe Find and Replace
Suppose you want to replace the word content
with copy
, but only in some lines (not all).
Use Normal Mode like this:
Place cursor on
content
Press
*
to search itUse
cwcopy<Esc>
to change first occurrencePress
n.
to go to next and repeat
You decide which matches to change, making it safer than a global :%s/content/copy/g
replace.
Final Thoughts
Normal Mode is the heart of Vim. It might feel strange at first — editing without typing — but once you embrace it, it becomes second nature. With its powerful combination of motions, operators, repeat commands, and macros, Normal Mode lets you edit at the speed of thought.
Don’t try to remember everything at once. Instead, start small:
Learn
.
to repeatUse
d
,c
,y
+ motionsTry
f{char}
,;
, andn.
patterns
Soon, you’ll be flying through code like never before.