# Keymaps Leader key is `;`. In normal mode `;` is also mapped to `:` (enter command mode), so leader sequences must be typed within `timeoutlen`. Pause after `;` for ~300 ms and which-key shows available bindings grouped by prefix. ## which-key Groups | Prefix | Group | |--------|-------| | `ai` | AI | | `b` | buffer | | `c` | code | | `d` | debug | | `e` | explorer | | `f` | find / format | | `g` | git | | `h` | git hunks | | `n` | notifications | | `s` | search | | `t` | test | | `x` | diagnostics (Trouble) | ## General | Key | Action | |-----|--------| | `;` | Enter command mode (`:`) | | `` | Clear search highlight | | `n` / `N` | Next / prev match (direction-aware) | | `j` / `k` | Move by visual line (`gj` / `gk`) | | `;;` | Select current line (`V`) | | `Q` | Disabled (prevents accidental Ex mode) | ## Splits & Tabs | Key | Action | |-----|--------| | `` | Move between splits | | `` | Previous tab | | `` | Next tab | ## Visual Mode | Key | Action | |-----|--------| | `<` | Indent left, keep selection | | `>` | Indent right, keep selection | ## Config Shortcuts | Key | Action | |-----|--------| | `vr` | Reload config (`:source $MYVIMRC`) | | `ve` | Edit config (`:edit $MYVIMRC`) | ## Navigation | Key | Action | |-----|--------| | `s` | Flash jump (any visible char, normal/visual/op) | | `S` | Flash treesitter jump | | `-` | Open parent directory (Oil) | | `e` | Toggle nvim-tree sidebar | | `a` | Toggle Aerial (code outline) | ## Search & Pickers (Snacks) | Key | Action | |-----|--------| | `` | Smart find files | | `,` | Buffer list | | `/` | Live grep | | `:` | Command history | | `n` | Notification history | | `un` | Dismiss all notifications | | `bd` | Delete buffer (keeps layout) | ## Search (Telescope) | Key | Action | |-----|--------| | `` | Find files | | `ff` | Grep → quickfix (ripgrep) | | `fF` | Live grep | | `fb` | Open buffers | | `fh` | Help tags | ## Git | Key | Action | |-----|--------| | `gd` | Diffview open | | `gD` | Diffview close | | `gh` | File history (Diffview) | | `gB` | Git browse (open in GitHub) | | `]h` / `[h` | Next / prev hunk (Gitsigns) | | `hs` | Stage hunk | | `hr` | Reset hunk | | `hp` | Preview hunk | ## LSP (buffer-local, set on LspAttach) | Key | Action | |-----|--------| | `gd` | Go to definition | | `K` | Hover documentation | | `gr` | References | | `rn` | Rename symbol | | `ca` | Code action | | `[d` / `]d` | Previous / next diagnostic | | `d` | Diagnostic float | | `q` | Diagnostics → location list | | `ih` | Toggle inlay hints (ruby_lsp only) | ## Formatting & Diagnostics | Key | Action | |-----|--------| | `f` | Format buffer (conform.nvim, any mode) | | `xx` | Trouble diagnostics toggle | | `xX` | Trouble buffer diagnostics | | `cs` | Trouble symbols | | `cl` | Trouble LSP definitions/references | | `xL` | Trouble location list | | `xQ` | Trouble quickfix | ## Testing (Neotest) | Key | Action | |-----|--------| | `tr` | Run nearest test | | `tf` | Run all tests in file | | `tl` | Re-run last test | | `ts` | Toggle test summary sidebar | | `to` | Show test output (float) | | `tO` | Toggle persistent output panel | | `tS` | Stop test run | ## Debugging (DAP) | Key | Action | |-----|--------| | `db` | Toggle breakpoint | | `dc` | Continue | | `di` | Step into | | `do` | Step over | | `du` | Toggle DAP UI | | `dr` | Open REPL | | `dt` | Terminate session | ## AI (CodeCompanion) | Key | Action | |-----|--------| | `aia` | CodeCompanion action menu | | `aic` | CodeCompanion chat | ## zdots Platform Integration | Key / Command | Action | |---------------|--------| | `zi` | Ingest current buffer into zdots context engine | | `zt` | Open interactive task picker (ztask) | | `:ZdotsIngest` | Same as `zi` | | `:ZdotsStatus` | zdots platform status in a floating window | ## Todo Comments | Key | Action | |-----|--------| | `]t` | Next todo comment | | `[t` | Previous todo comment | | `st` | Search todos (Telescope) | ## Treesitter Text Objects | Key | Object | |-----|--------| | `af` / `if` | Function outer / inner | | `ac` / `ic` | Class outer / inner | | `ab` / `ib` | Block outer / inner | | `]m` / `[m` | Jump to next / prev function start | | `]M` / `[M` | Jump to next / prev function end | ## Commands | Command | Action | |---------|--------| | `:PackSync` | Update all plugins (`vim.pack.update()`) | | `:Reload` | Re-source `$MYVIMRC` | | `:Vimrc` / `:Svimrc` / `:Tvimrc` / `:Vvimrc` | Edit / split / tab / vsplit vimrc | | `:Zshenv` / `:Szshenv` / `:Tzshenv` / `:Vzshenv` | Edit / split / tab / vsplit `.zshenv` | | `:ZdotsIngest` | Ingest current buffer into zdots | | `:ZdotsStatus` | Platform status float | | `:ConformInfo` | Show conform.nvim formatter info |