nix/docs/nvim.md

4.8 KiB

Neovim Configuration

Leader key: <Space>

Files & Buffers

Key Action
<leader>ex Toggle file tree
<leader>fs Save file
<leader>ff Find file
<leader>fr Find recent file
<leader>sf Search git files
<leader>bb List buffers
<leader><leader> List buffers
<leader>bd Delete buffer
<leader>. Scratch buffer
Key Action
<leader>sg Search grep
<leader>sw Search grep word
<leader>sb Buffer lines
<leader>sB Grep open buffers
<leader>: Command history

LSP

Key Action
gd Goto definition
gD Goto declaration
gr References
gI Goto implementation
gy Goto type definition
gai Incoming calls
gao Outgoing calls
K Hover documentation
<leader>rn Rename symbol
<leader>ca Code action
<leader>d Show diagnostic
[d / ]d Previous / next diagnostic
<leader>ls LSP symbols
<leader>lS LSP workspace symbols

Git

Key Action
<leader>gg Open Neogit
<leader>gb Git branches
<leader>gl Git log
<leader>gL Git log (file)
<leader>gs Git status
<leader>gS Git stash
<leader>gd Git diff (hunks)
<leader>gi GitHub issues (open)
<leader>gI GitHub issues (all)
<leader>gp GitHub PRs (open)
<leader>gP GitHub PRs (all)

Grapple (Harpoon-style marks)

Key Action
<leader>ma Toggle tag
<leader>mm Tags menu
<leader>m1-4 Select tag 1-4
<leader>mn Next tag
<leader>mp Previous tag
<leader>mga Add global tag
<leader>mgm Global tags menu

Claude Code

Key Action
<leader>ac Toggle Claude
<leader>af Focus Claude
<leader>ar Resume Claude
<leader>aC Continue Claude
<leader>am Select Claude model
<leader>ab Add current buffer
<leader>as Send to Claude (visual)
<leader>aa Accept diff
<leader>ad Deny diff

Code / Config

Key Action
<leader>cc Compile
<leader>cC Recompile
<leader>cf Format buffer
<leader>cr Reload config
<leader>ce Edit config
<leader>ch Check health

Windows

Key Action
<leader>wh/j/k/l Navigate windows
<leader>ws Split horizontal
<leader>wv Split vertical
<leader>wq Close window
<C-h/j/k/l> Move to tmux pane

Quickfix

Key Action
<leader>qq Open/focus quickfix
<leader>ql Toggle loclist
> Expand quickfix context
< Collapse quickfix context

Utilities

Key Action
<leader>ut Toggle undotree
<leader>zz Toggle zen mode
<leader>zm Toggle zoom

R (in R files)

Key Action
<leader>rs Start R
<leader>rq Close R
<leader>rl Send line to R
<leader>rs Send selection to R (visual)
<leader>rf Send file to R
<leader>ro Show function args
<leader>rh R help

Treesitter

Incremental Selection

Select code based on AST nodes - expand or shrink selection intelligently.

Key Action
vv Start treesitter selection
<Tab> Expand to larger node
<S-Tab> Shrink to smaller node
<C-Tab> Expand to full scope

Text Objects

Use with operators like v (visual), d (delete), c (change), y (yank).

Key Description
af / if Outer / inner function
ac / ic Outer / inner class
aa / ia Outer / inner argument
ai / ii Outer / inner conditional
al / il Outer / inner loop
ab / ib Outer / inner block

Examples:

  • vaf - select entire function
  • dif - delete function body
  • caa - change an argument
  • yic - yank inner class

Movement

Jump between functions, classes, and arguments.

Key Action
]f / [f Next / previous function start
]F / [F Next / previous function end
]c / [c Next / previous class start
]C / [C Next / previous class end
]a / [a Next / previous argument

Swap

Key Action
<leader>a Swap argument with next
<leader>A Swap argument with previous

Git Rebase (in gitrebase files)

Key Action
p Pick
r Reword
e Edit
s Squash
f Fixup
d Drop
x Exec
<C-n> / <C-j> Move line down
<C-p> / <C-k> Move line up

Terminal

Key Action
<C-q> Exit terminal mode