The leader is your personal namespace for shortcuts. You pick a key (Space is the most popular choice — it's huge, ergonomic, and not used in Normal mode for anything important), and then build up your own command vocabulary on top of it: <leader>w to save, <leader>ff to find files, <leader>gs for git status. Every mapping you add is a sentence you've taught your hands.
The map families
Vim has a per-mode mapping system. nmap applies in Normal mode; imap in Insert; vmap in Visual; cmap in Command-line. Always prefer the noremap variants (nnoremap, inoremap, etc.) — they treat the right-hand side literally instead of recursively expanding it through other mappings, which is how you avoid infinite loops.
Lua's neater equivalent
In Neovim Lua, vim.keymap.set(mode, lhs, rhs, opts) replaces the whole map family. opts is a table where you can set desc (which-key plugins display this), silent = true, noremap = true (default in vim.keymap.set), buffer = N for buffer-local maps.
The mappings every config has
A small canon of mappings shows up in nearly every config because they fix real annoyances: clear search highlight on Esc, jk to escape Insert, leader-w to save, leader-q to quit, Ctrl-h/j/k/l for split navigation (override Ctrl-w prefix), n / N centered with zz, J / K in Visual mode to move lines.
Add mappings reactively, not proactively. Don't copy a 200-line keymap file from someone's dotfiles. When you find yourself typing the same sequence twice in one day, then map it. The best keymap is the one you remember without checking, which means it came from a need you actually felt.
Code
Set the leader and the canonical Insert escape·vim
" Vimscript
let mapleader = " "
inoremap jk <Esc>
inoremap jj <Esc>
Add the starter keymap pack to your config. Reload Neovim. Test each one: <Space>w saves, jk in Insert mode escapes, Ctrl-h/j/k/l moves between splits (open one with :vs first). Then add one personal mapping for something you do constantly — for example nnoremap <leader>sv :source $MYVIMRC<CR> to reload the config. Earn each mapping; don't import them in bulk.
Progress
Progress is local-only — sign in to sync across devices.