neovim/CHEATSHEET.md
2025-05-20 15:53:29 +02:00

3.9 KiB

Neovim cheat sheet

Heavily customized. Related blog post: https://lugh.ch/neovim-lessons-learned.html

BASICS

  • :checkhealth [<pluginname>] check base or plugin status
  • :checkhealth vim.lsp show details of LSP attached to buffer
  • :verbose set expandtab? check where expandtab has been set last
  • :Lazy show package manager TUI
  • :Mason show LSP management TUI
  • :TSUpdate update all Tree-sitter parsers
  • :ConformInfo useful to debug why a formatter times out

NAVIGATING

Windows, splits & tabs

  • 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
  • gt or gT switch forward/reverse between tabs

Buffers

  • leader+leader lists open buffers in snipe.nvim
  • In snipe.nvim popup: Hit D to close the selected buffer
  • :bd close current buffer

Text

  • w/e move to start/end of next word
  • b move to start of previous word
  • Ctrl+0 start of line
  • Ctrl+$ end of line
  • Ctrl+d/u scroll down/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)
  • s<chars> highlight jump targets w/ flash.nvim

LSP, Code & Diagnostics

  • Ctrl+j/k scroll down/up through LSP suggestions
  • K show LSP context info
  • gd go to definition
  • gr show references of function
  • grn renames all refs of the symbol under cursor
  • leader+q 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 (next) file list
  • or Ctrl+p scroll up (previous) file list
  • Ctrl+d/u scroll down/up 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

Oil

  • Ctrl+d/u bottom/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/A insert mode after the current char/at end of line
  • o/O insert mode a line below/above the cursor
  • cw replace the current word
  • cc replace whole line
  • C replace to the end of the line
  • yy copy the current line
  • yygccp comment and copy the current line
  • yap "yank-around-paragraph"
  • yip "yank-inside-paragraph"
  • yaW copy word w/ dashes/underscores
  • p/P paste yanked line below/above
  • :windo diffthis open vimdiff for open splits
  • :vert diffsplit <other/file> diff this file and <other/file>
  • :windo diffoff to close diff view
  • ciq change inside quotes w/ mini.ai
  • caq change around quotes w/ mini.ai

SELECTING

Visual mode

  • v at cursor position
  • V line mode
  • Ctrl+v block mode
  • vap "visual-select-around-paragraph"
  • vip "visual-select-inside-paragraph"
  • ViB Select lines inside block (useful for commenting)

Code selection

  • Ctrl+s context-sensitive text selection w/ Tree-sitter
  • 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 toggle 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 word under cursor
  • Ctrl+l remove search highlight