neovim/CHEATSHEET.md
Oliver Ladner 480a5c2fff usability improvements
- add autocmds to highlight yanking and disabling line numbers in Oil
- lsp-zero: fix 'gd' command by setting 'preserve_mappings' to false
- lualine: show clock, simplify statusline, shorten mode name
- oil: decrease float window size, add 'q' hotkey to close window
- prefs: show line numbers again, disable additional mode showing
- add todo-comments.nvim
- remap: add keymap to find all TODOs/FIXME/XXX etc.
2024-03-05 21:32:07 +01:00

129 lines
4.1 KiB
Markdown

# Neovim command and keybind cheat sheet
## BASICS
- `Space` leader key
- `:checkhealth [<pluginname>]` check base or <pluginname> status
- `:verbose set expandtab?` check where `expandtab` has been set last
- `:Lazy` show package manager UI
- `:Lazy restore` revert plugins to the state reflected in `lazy-lock.json`
- `:Mason` show Mason UI
- `:TSUpdate` update all treesitter parsers
- `:TSModuleInfo` show installed treesitter parsers
- `:LspInfo` show currently attached LSP client details
- `:ConformInfo` useful to debug why a formatter times out
## NAVIGATING
## Tabs
- `gt` or `gT` switch forward/reverse between tabs
## Windows/splits
- `Ctrl`+`wq` close window
- `Ctrl`+`ws` split window **horizontally**
- `Ctrl`+`wv` split window **vertically**
- `Ctrl`+`<h/j/k/l>` 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
## Buffers
- `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
## Text
- `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`+`0` start of line
- `Ctrl`+`$` end of line
- `Ctrl`+`d` scroll down 1/2 page while keeping the cursor centered
- `Ctrl`+`u` scroll up 1/2 page while keeping the cursor centered
- `Ctrl`+`o` jump to location you were before (e.g. after using `gg`)
- `Ctrl`+`i` jump back to location you were before (after using `Ctrl`+`o`)
- `f<char>` jump forward to `<char>`
- `F<char>` jump backwards to `<char>`
- `;` jump to next occurence of <char> on same line
- `,` jump to previous occurence of <char> onx same line
## LSP, Code & Diagnostics
- `Ctrl`+`n/p` scroll down/up through LSP suggestions
- `Ctrl`+`l` accept selected suggestion
- `gd` go to definition
- `gr` show references of function
- `leader`+`qq` toggle `trouble.nvim` quickfix list
- `leader`+`da` go to next diagnostic (any severity)
- `leader`+`dw` go to next diagnostic (warning severity)
- `leader`+`de` go to next diagnostic (error severity)
## Telescope
- `↓` 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
- `Ctrl`+`q` send all items to quickfix list
- `Alt`+`q` send selected items to quickfix list
## Oil
- `Ctrl`+`d` bottom of file list
- `Ctrl`+`u` top of file list
- `Ctrl`+`p` preview file
- `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`+`o` re-format whole file or visual w/ `conform.nvim`
- `i` insert mode at cursor position
- `I` insert mode at **beginning of line**
- `a` insert mode **after the current char**
- `A` insert mode at **end of 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 the current line
- `yap` "yank-around-paragraph"
- `p` paste yanked line below
- `P` paste yanked line above
## SELECTING
### Visual mode
- `v` at cursor position
- `V` line mode
- `Ctrl`+`v` block mode
### Code selection
- `leader`+`Space` context-sensitive text selection w/ `treesitter`
- `Backspace` reduce context-sensitive selection
## SEARCH/OPEN
- `leader`+`fg` search text in files (also searches for text under cursor)
- `leader`+`ff` search files (respects `.gitignore`)
- `leader`+`e` toggles Oil file explorer
- `leader`+`fo` recently opened files
- `gf` open file under cursor in a new buffer
- `gx` open link under cursor in default browser
- `*` search marked word