# Neovim command and keybind cheat sheet Some of these are plain Vim commands, others are specific to Neovim. ## BASICS - `Space` leader key - `:so` Source file - `:checkhealth` check base and all plugins - `:checkhealth ` check for problems of a plugin - `:verbose set expandtab?` check where `expandtab` has been set last ### Lazy - `:Lazy` show package manager UI - `:Lazy restore` revert plugins to the state reflected in `lazy-lock.json` ### Mason - `:Mason` show Mason UI ### Treesitter - `:TSUpdate` update all parsers - `:TSModuleInfo` show installed parsers ### LSP - `:LspInfo` show currently attached LSP client details ## NAVIGATION ## Tabs Use buffers in situations where - `Ctrl`+`t` open a file in e.g. a Telescope finder in a new tab - `gt` or `gT` switch between open tabs (forward/reverse direction) ## Window/split - `Ctrl`+`wq` close window - `Ctrl`+`ws` split window **horizontally** - `Ctrl`+`wv` split window **vertically** - `Ctrl`+`` move between split windows - `Ctrl`+`w=` equalize split window width and height - `Ctrl`+`wr` swap position of two windows - `Ctrl`+`wT` move active split window to new tab ## Buffer - `Space`+`Space` shows buffers sorted by last used (via `Telescope buffers`) - `:bd` close current buffer - `:bn` go to next buffer - `:bp` go to previous buffer ## Code - `w` move to **start of next word** (ignores punctuation due to remap) - `e` move to **end of next word** (ignores punctuation due to remap) - `b` move to **start of previous word** (ignores punctuation due to remap) - `Ctrl`+`d` scroll **down** 1/2 page while keeping the cursor centered - `Ctrl`+`u` scroll **up** 1/2 page while keeping the cursor centered ## Telescope windows - `↓` or `Ctrl`+`n` scroll down (**n**ext) file list - `↑` or `Ctrl`+`p` scroll up (**p**revious) file list - `Ctrl`+`d` scroll **d**own in preview pane - `Ctrl`+`u` scroll **u**p in preview pane - `Ctrl`+`/` help - `Ctrl`+`v` open file in **vertical** split - `Ctrl`+`x` open file in **horizontal** split - `Ctrl`+`t` open file in new tab ## EDITING ### Code editing - `leader`+`i` re-indent whole file - `leader`+`o` re-format whole file or visual with `conform.nvim` - `i` insert mode at cursor position - `I` insert mode at the **beginning of the line** - `a` insert mode **one character after the current** one - `A` insert mode at the **end of the line** - `o` insert mode a line **below** the cursor - `O` insert mode a line **above** the cursor - `s` delete character and replace (substitute) it - `cw` replace the current word - `cc` replace whole line - `C` replace to the end of the line - `yy` copy (yank) the current line - `p` paste yanked line below - `P` paste yanked line above - `"3p` redo (put) e.g. your third last delete [source](https://www.reddit.com/r/neovim/comments/18ri1bm/its_been_like_10_years_and_i_just_learned_that/) ### Visual mode - `v` at cursor position - `V` line mode - `Ctrl`+`v` block mode ## SEARCH - `leader`+`fg` search text in files (also searches for text under cursor) - `leader`+`ff` search files (respects `.gitignore`) - `leader`+`e` file browser (disregards `.gitignore`) - `leader`+`fo` recently opened files