Groundwork

Editor

Neovim: editing at the speed of thought — once it clicks.

Neovim is a keyboard-first editor that lives in the terminal. It is optional, not a purity test, but it pairs beautifully with an agent workflow because edits, searches, diagnostics, Git, and terminal panes all stay close. Here it comes pre-loaded with LazyVim, so the file explorer, search, and code intelligence already work on day one.

When you'll want this Editing feels slow and you keep reaching for the mouse when you need to inspect or adjust agent-written code.
Quick reference — leader is Space, Esc is home
i / Esc insert / back to normal
:w / :q save / quit
dd yy p cut / copy line / paste
ciw change the word
u / Ctrlr undo / redo
gg / G top / bottom of file
SpaceSpace find a file
Space/ search in files
Spacee file explorer
Spacegg lazygit

#The one idea: modes

Every other editor is always in "typing" mode. Neovim has modes, and this is the whole thing to understand. In Normal mode — where you start — the keys aren't letters, they're commands: d deletes, y copies, j moves down. To actually type text, you switch to Insert mode. To do anything else, you come back to Normal. Normal mode is home base.

NORMAL commands INSERT type text VISUAL select COMMAND : save, quit, run i a o Esc v Esc : Esc
From Normal mode: i to type, v to select, : for commands. Esc always brings you home.
When in doubt, press Escape

Lost, or keys doing strange things? Press Esc. It returns you to Normal mode from anywhere. This single habit fixes ninety percent of "Neovim is broken" moments.

#Surviving your first session

Yes — the classic question is "how do I get out." Here's the whole survival kit. Open a file with nvim <name> (or just vim, which is aliased to it here).

iEnter Insert mode and start typing
EscBack to Normal mode
:wSave (write) the file
:qQuit
:wqSave and quit in one go
:q!Quit without saving — throw away changes

Those : commands are Command mode. Type the colon, the letters, then Enter. That's enough to never feel trapped again.

#Moving around

In Normal mode you fly without arrow keys (though arrows work too). Your right hand stays on the home row.

hjklLeft, down, up, right
w / bForward / back one word
0 / $Start / end of the line
gg / GTop / bottom of the file
Ctrld / CtrluHalf a page down / up

#Editing is a little language

This is the part that makes people fall for Neovim. Edits are built from a verb plus a motion, and they combine like grammar. Learn a few verbs and a few motions and you can express thousands of edits.

dDelete  ·  c change  ·  y yank (copy)  ·  p paste
dwDelete a word (verb d + motion w)
ciwChange inside the word the cursor is on
dd / yyDelete / copy the whole line
uUndo  ·  Ctrlr redo

Read them aloud: dw is "delete word," ciw is "change inside word." Once the grammar clicks, you stop memorizing keys and start composing them.

#It's already set up: LazyVim

You're not running bare Neovim — it's configured with LazyVim, which adds a file tree, fuzzy finding, autocomplete, and language smarts out of the box. The gateway to all of it is the leader key, which is Space.

The best trick for learning: which-key

Press Space and wait half a second. A menu pops up showing every command you can run next, and what it does. You don't have to memorize the shortcuts below — press Space, read, and pick. Discovery beats memorization.

SpaceSpaceFind a file by name (just start typing part of it)
Space/Search the text of every file in the project
SpaceeToggle the file explorer
SpaceggOpen lazygit right inside the editor

#It plays nice with tmux

Neovim and tmux are wired together: Alth/j/k/l moves between Neovim's split windows and tmux's panes with the same keys — no thinking about which is which. Open the editor in one tmux pane, a shell in another, and move around the whole layout seamlessly.

#Practice

1

Do vimtutor — twice

Close this and run vimtutor in your terminal. It's a free, built-in, ~30-minute hands-on lesson — the single best way to start. Do it once today and once tomorrow. Nothing on this page beats actually doing it.

2

Type, escape, save, quit

Run nvim scratch.txt. Press i, type a sentence, press Esc. Save and quit with :wq then Enter. Reopen it to prove the text is there. You've now escaped Neovim on purpose.

3

Speak the grammar

In a file with a few lines, try dd (delete line), u (undo it), ciw on a word (change it), and yy then p (copy a line and paste it). Say each one aloud as you go.

4

Use the real tools

In a project folder, open nvim, then press Space and wait to see the menu. Find a file with SpaceSpace, search the project with Space/, and pop open lazygit with Spacegg.

It's hard for everyone at first — and that's fine

Plan on a couple of awkward weeks; every Neovim user had them. You can't break anything permanently — the config lives in the setup repo, so if Neovim ever gets strange, re-applying restores it. Push through the dip and it becomes second nature.

#Lua and config files

Modern Neovim is configured mostly with Lua, a small scripting language. You can use this setup without learning Lua first. Just know that files ending in .lua are editor configuration or plugin code, and :help lua-guide is the built-in reference when you want to go deeper.

#Going deeper

Start — learn the motions:

Go further — config & mastery: