Navigate Neovim
like a pro

Learn the fundamentals of Neovim — modes, motions, operators, and commands — then put them to practice in the interactive editor.

▶ Interactive Practice Advanced Features
Modes
Neovim is modal — each mode handles keypresses differently.
NORMAL

The default mode. Used for navigation and editing commands. Press Esc from any mode to return here.

EscReturn to Normal mode
Ctrl+[Also returns to Normal mode
INSERT

Text input mode. Keys you press are inserted literally.

iInsert before cursor
aAppend after cursor
IInsert at start of line
AAppend at end of line
oNew line below, insert
ONew line above, insert
sDelete char, insert
VISUAL

Select text to operate on.

vCharacter-wise visual
VLine-wise visual
Ctrl+vBlock visual (column)
gvReselect last visual
COMMAND

Run Ex commands via the command line.

:Open command line
/Search forward
?Search backward
!Filter through shell cmd
Basic Movement
In Normal mode, move without the arrow keys.
▲ Character Motions
hMove left
jMove down
kMove up
lMove right
Tip: Combine with a count: 5j moves down 5 lines.
▶ Word Motions
wNext word start
WNext WORD start (whitespace-delimited)
bPrevious word start
BPrevious WORD start
eCurrent/next word end
ECurrent/next WORD end
gePrevious word end
▮ Line Motions
0Start of line
^First non-blank character
$End of line
g_Last non-blank character
f{c}Jump to char c on line
F{c}Jump back to char c
t{c}Jump before char c
; / ,Repeat f/t forward/back
⸻ File / Screen Motions
ggTop of file
GBottom of file
{n}GGo to line n
%Jump to matching bracket
HTop of screen
MMiddle of screen
LBottom of screen
Ctrl+dScroll down half page
Ctrl+uScroll up half page
Ctrl+fScroll full page down
Ctrl+bScroll full page up
Editing in Normal Mode
Operators act on motions — the real power of Vim.
✎ Operators

Operators combine with motions: d+w = delete word.

dDelete (cut)
yYank (copy)
cChange (delete + insert)
>Indent right
<Indent left
=Auto-indent
g~Toggle case
guLowercase
gUUppercase
⊗ Common Combos
ddDelete line
yyYank line
ccChange line
dwDelete word
d$Delete to end of line
ciwChange inner word
ci"Change inside quotes
da(Delete around parens
yipYank inner paragraph
↵ Undo & Paste
uUndo
Ctrl+rRedo
pPaste after cursor/line
PPaste before cursor/line
"0pPaste from yank register
xDelete character (cut)
r{c}Replace char with c
RReplace mode (overtype)
.Repeat last change
🔍 Search
/patternSearch forward
?patternSearch backward
nNext match
NPrevious match
*Search word under cursor (fwd)
#Search word under cursor (bwd)
:nohClear search highlight
Essential Commands
Run with : in Normal mode.
💾 File Commands
:wWrite (save)
:w filenameSave as filename
:qQuit
:q!Quit without saving
:wqSave and quit
:xSave and quit (if changed)
:e filenameOpen file
:e!Reload file (discard changes)
🔄 Substitution
:s/old/newReplace first on current line
:s/old/new/gReplace all on current line
:%s/old/new/gReplace all in file
:%s/old/new/gcReplace with confirmation
:'<,'>s/o/n/gReplace in visual selection
Pro tip: Use :help {topic} to access Neovim's comprehensive built-in documentation. For example, :help motion.txt or :help operator.