Interactive single-file cheatsheet of every built-in key and this config's live keymaps, generated by docs/cheatsheet/gen_cheatsheet.py from $VIMRUNTIME/doc/index.txt, a headless dump of the config (dump.lua) and curated plugin/config notes (curated/*.json).
562 lines
97 KiB
JSON
562 lines
97 KiB
JSON
{
|
|
"entries": [
|
|
{"k": "<C-r><C-p>", "m": ["i"], "d": "Insert the full path of the file under the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-r><C-w>", "m": ["i"], "d": "Insert the word under the cursor (in the original buffer)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "j", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<Down>", "m": ["n", "i"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-q>", "m": ["n", "i"], "d": "Send the selected items (or all results) to the quickfix list and open it", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "e": 1, "sl": "→qf"},
|
|
{"k": "<Up>", "m": ["n", "i"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "/", "m": ["n"], "d": "Toggle focus between the input and the result list", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Open / jump to the item (or every selected item)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Runs the source's own confirm action: most open the file, some check out, apply or insert (see the per-picker entries).", "e": 1, "sl": "open"},
|
|
{"k": "<C-p>", "m": ["n", "i"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-r>#", "m": ["i"], "d": "Insert the alternate file name (#) into the search", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<M-f>", "m": ["n", "i"], "d": "Toggle following symlinks (files / grep)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex."},
|
|
{"k": "<M-r>", "m": ["n", "i"], "d": "Toggle regex vs literal matching for the search", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex."},
|
|
{"k": "<C-j>", "m": ["n", "i"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<M-s>", "m": ["n", "i"], "d": "Flash-jump: label every result and type a label to move there", "s": "config", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Custom action in <code>lua/plugins.lua</code>: runs <code>flash.jump</code> with pattern <code>^</code> restricted to the list window, then moves the cursor to the picked row (it does not confirm).", "e": 1, "sl": "flash"},
|
|
{"k": "<M-h>", "m": ["n", "i"], "d": "Toggle showing hidden (dot) files", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex.", "sl": "hidden"},
|
|
{"k": "<M-a>", "m": ["n", "i"], "d": "Send the selected items (or current) to the Sidekick AI CLI", "s": "config", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Custom action in <code>lua/plugins.lua</code> calling <code>sidekick.cli.picker.snacks.send</code>: closes the picker and sends file/position references to the running AI CLI tool."},
|
|
{"k": "<C-w>H", "m": ["n"], "d": "Move the picker to a left sidebar layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-w>J", "m": ["n"], "d": "Move the picker to a bottom split layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-w>K", "m": ["n"], "d": "Move the picker to a top split layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-w>L", "m": ["n"], "d": "Move the picker to a right sidebar layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "s", "m": ["n"], "d": "Flash-jump: label every result and type a label to move there", "s": "config", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Custom action in <code>lua/plugins.lua</code>: runs <code>flash.jump</code> with pattern <code>^</code> restricted to the list window, then moves the cursor to the picked row (it does not confirm). Normal mode only and buffer-local, so it beats mini.surround's <kbd>s</kbd> prefix inside the picker.", "sl": "flash"},
|
|
{"k": "<M-d>", "m": ["n", "i"], "d": "Debug-inspect the item under the cursor (Snacks.debug)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-u>", "m": ["n", "i"], "d": "Scroll the result list up half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<M-p>", "m": ["n", "i"], "d": "Show / hide the preview window", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-t>", "m": ["n", "i"], "d": "Open the item in a new tab", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-c>", "m": ["i"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "close"},
|
|
{"k": "<C-r><C-a>", "m": ["i"], "d": "Insert the WORD under the cursor (in the original buffer)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-r><C-f>", "m": ["i"], "d": "Insert the file path under the cursor (<cfile>)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-Down>", "m": ["n", "i"], "d": "Recall the next search from picker history", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-n>", "m": ["n", "i"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-Up>", "m": ["n", "i"], "d": "Recall the previous search from picker history", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-b>", "m": ["n", "i"], "d": "Scroll the preview window up", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "?", "m": ["n"], "d": "Show the key help for the input window", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-g>", "m": ["n", "i"], "d": "Toggle live mode: re-run the search on every keystroke vs filter results", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "In the list window <kbd>Ctrl-g</kbd> prints the item path instead."},
|
|
{"k": "<C-w>", "m": ["i"], "d": "Delete the word before the cursor in the search input", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Maps <code><C-w></code> to <code><C-S-w></code>, which works in the prompt buffer."},
|
|
{"k": "<C-f>", "m": ["n", "i"], "d": "Scroll the preview window down", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "q", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "close"},
|
|
{"k": "<Tab>", "m": ["n", "i"], "d": "Toggle selection of the item and move down (multi-select)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "e": 1, "sl": "select"},
|
|
{"k": "<M-w>", "m": ["n", "i"], "d": "Cycle focus between the input, preview and list windows", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "G", "m": ["n"], "d": "Jump to the last result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<Esc>", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "close", "n": "Normal mode only: in insert mode the first <kbd>Esc</kbd> just leaves insert mode in the search box, the second closes the picker (or use <kbd>q</kbd> / insert-mode <kbd>Ctrl-c</kbd>)."},
|
|
{"k": "<C-d>", "m": ["n", "i"], "d": "Scroll the result list down half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<S-Tab>", "m": ["n", "i"], "d": "Toggle selection of the item and move up (multi-select)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "k", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<S-CR>", "m": ["n", "i"], "d": "Pick a window with labels, then open the item there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "<code>{ \"pick_win\", \"jump\" }</code>: the picker hides, every window gets a letter label; type it to open the item in that window."},
|
|
{"k": "<C-r>%", "m": ["i"], "d": "Insert the current file name (%)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-s>", "m": ["n", "i"], "d": "Open the item in a horizontal split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "split"},
|
|
{"k": "<M-i>", "m": ["n", "i"], "d": "Toggle showing git-ignored files", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex.", "sl": "ignored"},
|
|
{"k": "<M-m>", "m": ["n", "i"], "d": "Maximize / restore the picker layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-a>", "m": ["n", "i"], "d": "Select every result, or clear the selection if all are selected", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-v>", "m": ["n", "i"], "d": "Open the item in a vertical split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "vsplit"},
|
|
{"k": "<C-k>", "m": ["n", "i"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "gg", "m": ["n"], "d": "Jump to the first result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-r><C-l>", "m": ["i"], "d": "Insert the current line of the original buffer", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"},
|
|
{"k": "<C-t>", "m": ["n"], "d": "Open the item in a new tab", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "j", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<Down>", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-q>", "m": ["n"], "d": "Send the selected items (or all results) to the quickfix list and open it", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "→qf"},
|
|
{"k": "<Up>", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "/", "m": ["n"], "d": "Toggle focus between the input and the result list", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<Esc>", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "close"},
|
|
{"k": "gg", "m": ["n"], "d": "Jump to the first result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "zb", "m": ["n"], "d": "Scroll the list so the current item is at the bottom", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-v>", "m": ["n"], "d": "Open the item in a vertical split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "vsplit"},
|
|
{"k": "<M-h>", "m": ["n"], "d": "Toggle showing hidden (dot) files", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex.", "sl": "hidden"},
|
|
{"k": "<C-w>H", "m": ["n"], "d": "Move the picker to a left sidebar layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-w>J", "m": ["n"], "d": "Move the picker to a bottom split layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-b>", "m": ["n"], "d": "Scroll the preview window up", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-w>L", "m": ["n"], "d": "Move the picker to a right sidebar layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<2-LeftMouse>", "m": ["n"], "d": "Open / jump to the item (or every selected item)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Runs the source's own confirm action: most open the file, some check out, apply or insert (see the per-picker entries).", "sl": "open"},
|
|
{"k": "<M-d>", "m": ["n"], "d": "Debug-inspect the item under the cursor (Snacks.debug)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<M-p>", "m": ["n"], "d": "Show / hide the preview window", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "i", "m": ["n"], "d": "Focus the search input", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-u>", "m": ["n"], "d": "Scroll the result list up half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-d>", "m": ["n"], "d": "Scroll the result list down half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-n>", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-p>", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-g>", "m": ["n"], "d": "Print the path of the item under the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-j>", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-f>", "m": ["n"], "d": "Scroll the preview window down", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<S-CR>", "m": ["n"], "d": "Pick a window with labels, then open the item there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "<code>{ \"pick_win\", \"jump\" }</code>: the picker hides, every window gets a letter label; type it to open the item in that window."},
|
|
{"k": "<Tab>", "m": ["n", "x"], "d": "Toggle selection of the item and move down (multi-select)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "select"},
|
|
{"k": "?", "m": ["n"], "d": "Show the key help for the list window", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "k", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<M-m>", "m": ["n"], "d": "Maximize / restore the picker layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<M-f>", "m": ["n"], "d": "Toggle following symlinks (files / grep)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex."},
|
|
{"k": "<C-w>K", "m": ["n"], "d": "Move the picker to a top split layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-s>", "m": ["n"], "d": "Open the item in a horizontal split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "split"},
|
|
{"k": "<S-Tab>", "m": ["n", "x"], "d": "Toggle selection of the item and move up (multi-select)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "zt", "m": ["n"], "d": "Scroll the list so the current item is at the top", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<M-w>", "m": ["n"], "d": "Cycle focus between the input, preview and list windows", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "zz", "m": ["n"], "d": "Scroll the list so the current item is centred", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "G", "m": ["n"], "d": "Jump to the last result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<C-a>", "m": ["n"], "d": "Select every result, or clear the selection if all are selected", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "<M-i>", "m": ["n"], "d": "Toggle showing git-ignored files", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex.", "sl": "ignored"},
|
|
{"k": "<C-k>", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"},
|
|
{"k": "q", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "close"},
|
|
{"k": "<CR>", "m": ["n"], "d": "Open / jump to the item (or every selected item)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "Runs the source's own confirm action: most open the file, some check out, apply or insert (see the per-picker entries).", "sl": "open"},
|
|
{"k": "<Esc>", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · preview", "sl": "close"},
|
|
{"k": "<M-w>", "m": ["n"], "d": "Cycle focus between the input, preview and list windows", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · preview"},
|
|
{"k": "q", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · preview", "sl": "close"},
|
|
{"k": "i", "m": ["n"], "d": "Focus the search input", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · preview"},
|
|
{"k": "<C-x>", "m": ["n", "i"], "d": "Delete (unload) the buffer under the cursor or the selected buffers", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · buffers", "n": "Opened with <kbd><leader>, / <leader>fb</kbd>."},
|
|
{"k": "dd", "m": ["n"], "d": "Delete the buffer (list window)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · buffers", "n": "Opened with <kbd><leader>, / <leader>fb</kbd>."},
|
|
{"k": "<Tab>", "m": ["n", "i"], "d": "Stage / unstage the file (replaces multi-select here)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_status", "n": "Opened with <kbd><leader>gs</kbd>. Runs <code>git add</code> or <code>git restore --staged</code>."},
|
|
{"k": "<C-r>", "m": ["n", "i"], "d": "Restore (discard) the file's changes after a confirm prompt", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_status", "n": "Opened with <kbd><leader>gs</kbd>. Runs <code>git restore</code>; irreversible for unstaged edits."},
|
|
{"k": "<Tab>", "m": ["n", "i"], "d": "Stage / unstage the hunk under the cursor", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_diff", "n": "Opened with <kbd><leader>gd</kbd>. Uses <code>git apply --cached</code> (or <code>--reverse</code>)."},
|
|
{"k": "<C-r>", "m": ["n", "i"], "d": "Discard the hunk after a confirm prompt", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_diff", "n": "Opened with <kbd><leader>gd</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Check out the branch (remote branches get a local tracking branch)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_branches", "n": "Opened with <kbd><leader>gb</kbd>."},
|
|
{"k": "<C-a>", "m": ["n", "i"], "d": "Create and check out a new branch (name prompt prefilled with the search text)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_branches", "n": "Opened with <kbd><leader>gb</kbd>."},
|
|
{"k": "<C-x>", "m": ["n", "i"], "d": "Force-delete the branch (git branch -D) after a confirm prompt", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_branches", "n": "Opened with <kbd><leader>gb</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Check out the commit: puts the repo in detached HEAD", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_log", "n": "Opened with <kbd><leader>gl</kbd>. The source's confirm is <code>git_checkout</code>, so Enter on a commit really runs <code>git checkout <sha></code>. Use <kbd>Esc</kbd> to just browse."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Restore this file to the chosen commit's version (overwrites it)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_log_file / git_log_line", "n": "Opened with <kbd><leader>gf</kbd> (file history) or <kbd><leader>gL</kbd> (line history). Confirm is <code>git_checkout</code> with the file attached: <code>git checkout <sha> -- <file></code> replaces the working copy."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Apply the stash (git stash apply)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_stash", "n": "Opened with <kbd><leader>gS</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "cd to the project and try to restore its session, else open files", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>. Session restore uses the dashboard's plugin detection, which only works with lazy.nvim, so here it just changes directory and opens the files picker after 100 ms."},
|
|
{"k": "<C-e>", "m": ["n", "i"], "d": "tcd to the project and open the explorer there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>."},
|
|
{"k": "<C-f>", "m": ["n", "i"], "d": "tcd to the project and find files there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>."},
|
|
{"k": "<C-g>", "m": ["n", "i"], "d": "tcd to the project and grep there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>."},
|
|
{"k": "<C-r>", "m": ["n", "i"], "d": "tcd to the project and list its recent files", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>."},
|
|
{"k": "<C-w>", "m": ["n", "i"], "d": "Just tcd to the project (tab-local cwd)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>."},
|
|
{"k": "<C-t>", "m": ["n", "i"], "d": "Open a new tab and pick a project for it", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with <kbd><leader>fp</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Restore the buffer to the chosen undo state", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · undo", "n": "Opened with <kbd><leader>su</kbd>."},
|
|
{"k": "<C-y>", "m": ["n", "i"], "d": "Yank the lines added in that undo state", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · undo", "n": "Opened with <kbd><leader>su</kbd>."},
|
|
{"k": "<C-S-y>", "m": ["n", "i"], "d": "Yank the lines removed in that undo state", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · undo", "n": "Opened with <kbd><leader>su</kbd>."},
|
|
{"k": "<C-x>", "m": ["n", "i"], "d": "Delete the mark under the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · marks", "n": "Opened with <kbd><leader>sm</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Copy the register's contents to the default register (the clipboard here) and close", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · registers", "n": "Opened with <kbd><leader>s\"</kbd>. Uses <code>v:register</code>, which is <code>+</code> with <code>clipboard=unnamedplus</code>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Put the command on the command line (edit, then Enter to run)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · command_history", "n": "Opened with <kbd><leader>: / <leader>sc</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Put the command on the command line", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · commands", "n": "Opened with <kbd><leader>sC</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Start a / search pre-filled with that pattern", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · search_history", "n": "Opened with <kbd><leader>s/</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Insert the icon at the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · icons", "n": "Opened with <kbd><leader>si</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Apply the colorscheme (moving through the list previews it live)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · colorschemes", "n": "Opened with <kbd><leader>uC</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Open the help page; <C-v> vertical, <C-t> tab", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · help", "n": "Opened with <kbd><leader>sh</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Close the picker and run the chosen keymap", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · keymaps", "n": "Opened with <kbd><leader>sk</kbd>. Feeds the mapping's lhs with <code>nvim_input</code>, so it runs as if typed."},
|
|
{"k": "<M-g>", "m": ["n", "i"], "d": "Toggle including global keymaps", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · keymaps", "n": "Opened with <kbd><leader>sk</kbd>."},
|
|
{"k": "<M-b>", "m": ["n", "i"], "d": "Toggle including buffer-local keymaps", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · keymaps", "n": "Opened with <kbd><leader>sk</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Open the GitHub actions menu for the issue / PR", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_issue / gh_pr", "n": "Opened with <kbd><leader>gi / gI / gp / gP</kbd>."},
|
|
{"k": "<M-b>", "m": ["n", "i"], "d": "Open the issue / PR in the browser", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_issue / gh_pr", "n": "Opened with <kbd><leader>gi / gI / gp / gP</kbd>."},
|
|
{"k": "<C-y>", "m": ["n", "i"], "d": "Yank the issue / PR URL", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_issue / gh_pr", "n": "Opened with <kbd><leader>gi / gI / gp / gP</kbd>."},
|
|
{"k": "y", "m": ["n", "x"], "d": "Yank the URL(s) of the item(s) (list window)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_issue / gh_pr", "n": "Opened with <kbd><leader>gi / gI / gp / gP</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Open the PR in a tea:// buffer (c checkout, d diff, A approve, a comment, x close)", "s": "snacks-tea", "cat": "Git", "ctx": "Snacks picker · tea_pr", "n": "Opened with <kbd><leader>gt / gT</kbd>. This snacks-tea version registers its picker config only when <code>Snacks.picker.config.defaults</code> exists, which this snacks lacks, so it falls back to a bare picker: Enter is the default jump and the <kbd>Alt-b</kbd> / <kbd>Ctrl-y</kbd> / <kbd>y</kbd> keys are not mapped (verified headless)."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Open the scratch buffer", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · scratch", "n": "Opened with <kbd><leader>S</kbd>."},
|
|
{"k": "<C-n>", "m": ["n", "i"], "d": "Open the default scratch buffer for the current filetype (created if missing)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · scratch", "n": "Opened with <kbd><leader>S</kbd>. Runs <code>Snacks.scratch.open()</code>, the same buffer <kbd><leader>.</kbd> toggles; it does not make an extra one."},
|
|
{"k": "<C-x>", "m": ["n", "i"], "d": "Delete the scratch file", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · scratch", "n": "Opened with <kbd><leader>S</kbd>."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Jump to the location; LSP pickers jump directly when there is only one result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · lsp_* / smart / files / grep", "n": "Opened with <kbd>gd gr gI gy gai gao, <leader><space> …</kbd>. <code>auto_confirm</code> is on for lsp_definitions, references, implementations, type/declarations and call hierarchy."},
|
|
{"k": "<C-x>", "m": ["n", "i"], "d": "Create a new note named from the search text", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian notes", "n": "In <code>:Obsidian quick_switch</code> / <code>search</code> pickers (snacks backend). <kbd>Ctrl-b</kbd> here replaces snacks' preview scroll-up."},
|
|
{"k": "<C-l>", "m": ["n", "i"], "d": "Insert a [[link]] to the chosen note at the cursor", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian notes", "n": "In <code>:Obsidian quick_switch</code> / <code>search</code> pickers (snacks backend). <kbd>Ctrl-b</kbd> here replaces snacks' preview scroll-up."},
|
|
{"k": "<C-b>", "m": ["n", "i"], "d": "Bookmark the chosen note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian notes", "n": "In <code>:Obsidian quick_switch</code> / <code>search</code> pickers (snacks backend). <kbd>Ctrl-b</kbd> here replaces snacks' preview scroll-up."},
|
|
{"k": "<C-x>", "m": ["n", "i"], "d": "Add the chosen tag(s) to the current note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian tags", "n": "In the <code>:Obsidian tags</code> picker."},
|
|
{"k": "<C-l>", "m": ["n", "i"], "d": "Insert the chosen tag at the cursor", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian tags", "n": "In the <code>:Obsidian tags</code> picker."},
|
|
{"k": "<CR>", "m": ["n", "i"], "d": "Jump to the bookmark", "s": "haunt", "cat": "Mark & jump", "ctx": "Snacks picker · Haunt bookmarks", "n": "Opened with <kbd>Space h l</kbd> (picker = \"snacks\" in <code>lua/plugins.lua</code>)."},
|
|
{"k": "d", "m": ["n"], "d": "Delete the bookmark under the cursor", "s": "haunt", "cat": "Mark & jump", "ctx": "Snacks picker · Haunt bookmarks", "n": "Normal mode in both the input and list windows (default <code>picker_keys.delete</code>)."},
|
|
{"k": "a", "m": ["n"], "d": "Edit the bookmark's annotation", "s": "haunt", "cat": "Mark & jump", "ctx": "Snacks picker · Haunt bookmarks", "n": "Normal mode in both the input and list windows (default <code>picker_keys.edit_annotation</code>)."},
|
|
{"k": "<C-t>", "m": ["n"], "d": "Open a terminal in the directory under the cursor", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Replaces the picker's usual <kbd>Ctrl-t</kbd> (open in tab)."},
|
|
{"k": "j", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<Down>", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-q>", "m": ["n"], "d": "Send the selected items (or all results) to the quickfix list and open it", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<Up>", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "o", "m": ["n"], "d": "Open the file with the system default application", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<Esc>", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "r", "m": ["n"], "d": "Rename the file (LSP-aware: updates imports via Snacks.rename)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "e": 1, "sl": "rename"},
|
|
{"k": "zb", "m": ["n"], "d": "Scroll the list so the current item is at the bottom", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "k", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "P", "m": ["n"], "d": "Toggle the preview window", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "I", "m": ["n"], "d": "Toggle showing git-ignored files", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "i", "m": ["n"], "d": "Focus the search input", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "zt", "m": ["n"], "d": "Scroll the list so the current item is at the top", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "a", "m": ["n"], "d": "Create a file or directory (end the name with / for a directory)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Missing parent directories are created.", "e": 1, "sl": "new"},
|
|
{"k": "<C-n>", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "Z", "m": ["n"], "d": "Collapse every directory", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-g>", "m": ["n"], "d": "Print the path of the item under the cursor", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-f>", "m": ["n"], "d": "Scroll the preview window down", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<S-Tab>", "m": ["n", "x"], "d": "Toggle selection of the item and move up (multi-select)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<Tab>", "m": ["n", "x"], "d": "Toggle selection of the item and move down (multi-select)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "]g", "m": ["n"], "d": "Jump to the next file with git changes", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "[g", "m": ["n"], "d": "Jump to the previous file with git changes", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-a>", "m": ["n"], "d": "Select every result, or clear the selection if all are selected", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "]d", "m": ["n"], "d": "Jump to the next file with diagnostics", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-c>", "m": ["n"], "d": "Set the tab-local working directory to the directory under the cursor", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "[d", "m": ["n"], "d": "Jump to the previous file with diagnostics", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "]w", "m": ["n"], "d": "Jump to the next file with warnings", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "c", "m": ["n"], "d": "Copy the selection into this directory, or copy the file to a new name", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "]e", "m": ["n"], "d": "Jump to the next file with errors", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "?", "m": ["n"], "d": "Show the key help for the list window", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "[e", "m": ["n"], "d": "Jump to the previous file with errors", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "/", "m": ["n"], "d": "Toggle focus between the input and the result list", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "gg", "m": ["n"], "d": "Jump to the first result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "h", "m": ["n"], "d": "Collapse the directory (or the parent of a file)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<M-f>", "m": ["n"], "d": "Toggle following symlinks (files / grep)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Toggle flags show as letters in the picker title: f follow, h hidden, i ignored, R regex."},
|
|
{"k": "<C-v>", "m": ["n"], "d": "Open the item in a vertical split", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<M-h>", "m": ["n"], "d": "Toggle showing hidden (dot) files", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "u", "m": ["n"], "d": "Refresh the tree from disk", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-w>J", "m": ["n"], "d": "Move the picker to a bottom split layout", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-w>K", "m": ["n"], "d": "Move the picker to a top split layout", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<M-m>", "m": ["n"], "d": "Maximize / restore the picker layout", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<2-LeftMouse>", "m": ["n"], "d": "Open the file, or expand / collapse the directory", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<M-d>", "m": ["n"], "d": "Debug-inspect the item under the cursor (Snacks.debug)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<M-p>", "m": ["n"], "d": "Toggle the preview window", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-u>", "m": ["n"], "d": "Scroll the result list up half a page", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-d>", "m": ["n"], "d": "Scroll the result list down half a page", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<leader>/", "m": ["n"], "d": "Grep inside the directory under the cursor", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Buffer-local <code><leader>/</code>, shadowing the global Grep map while the explorer list has focus."},
|
|
{"k": "H", "m": ["n"], "d": "Toggle showing hidden (dot) files", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-w>H", "m": ["n"], "d": "Move the picker to a left sidebar layout", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "l", "m": ["n"], "d": "Open the file, or expand / collapse the directory", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<BS>", "m": ["n"], "d": "Go up: make the parent directory the explorer root", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": ".", "m": ["n"], "d": "Make the directory under the cursor the explorer root", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "q", "m": ["n"], "d": "Close the picker and go back to the window it was opened from", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<CR>", "m": ["n"], "d": "Open the file, or expand / collapse the directory", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "e": 1},
|
|
{"k": "<C-k>", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<M-i>", "m": ["n"], "d": "Toggle showing git-ignored files", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "y", "m": ["n", "x"], "d": "Yank the path(s) of the file(s) to the clipboard", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Uses <code>v:register</code>, which is <code>+</code> with <code>clipboard=unnamedplus</code>."},
|
|
{"k": "G", "m": ["n"], "d": "Jump to the last result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "p", "m": ["n"], "d": "Paste (copy) files whose paths are in the clipboard into this directory", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "zz", "m": ["n"], "d": "Scroll the list so the current item is centred", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "m", "m": ["n"], "d": "Move the selected files into this directory (renames if nothing selected)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<M-w>", "m": ["n"], "d": "Cycle focus between the input, preview and list windows", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-s>", "m": ["n"], "d": "Open the item in a horizontal split", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<S-CR>", "m": ["n"], "d": "Pick a window with labels, then open the item there", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "<code>{ \"pick_win\", \"jump\" }</code>: the picker hides, every window gets a letter label; type it to open the item in that window."},
|
|
{"k": "<C-p>", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-w>L", "m": ["n"], "d": "Move the picker to a right sidebar layout", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Split layouts disable auto-close and preview; the picker stays open after confirm."},
|
|
{"k": "<C-j>", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "<C-b>", "m": ["n"], "d": "Scroll the preview window up", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "d", "m": ["n"], "d": "Delete the file(s) after a confirm prompt (to the system trash)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Trash is on by default and <code>trash</code>, <code>gio</code> and <code>kioclient</code> are installed here, so deletes are recoverable. Works on the multi-selection.", "e": 1, "sl": "delete"},
|
|
{"k": "[w", "m": ["n"], "d": "Jump to the previous file with warnings", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"},
|
|
{"k": "f", "m": ["n"], "d": "Find file (Snacks files picker)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard"},
|
|
{"k": "n", "m": ["n"], "d": "New empty buffer in insert mode (:ene | startinsert)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard"},
|
|
{"k": "g", "m": ["n"], "d": "Find text (Snacks grep picker)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard"},
|
|
{"k": "r", "m": ["n"], "d": "Recent files (Snacks recent picker)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard"},
|
|
{"k": "c", "m": ["n"], "d": "Find a file in the Neovim config (stdpath('config'))", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard"},
|
|
{"k": "q", "m": ["n"], "d": "Quit Neovim (:qa)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard", "n": "The item key overrides the dashboard's own <kbd>q</kbd> = <code>:bd</code>."},
|
|
{"k": "<CR>", "m": ["n"], "d": "Run the item under the cursor", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard", "n": "There is no <kbd>s</kbd> (Restore Session) or <kbd>L</kbd> (Lazy) item: Snacks detects session plugins only under lazy.nvim, so under <code>vim.pack</code> persistence is not found. Use <kbd>Space q s</kbd> / <kbd>Space q l</kbd> instead."},
|
|
{"k": "q", "m": ["n"], "d": "Close the scratch window (the buffer is saved automatically)", "s": "snacks", "cat": "Buffer & tab", "ctx": "Snacks scratch window", "n": "Scratch files live in <code>stdpath('data')/scratch</code>, keyed by name, filetype, count, cwd and git branch, and are written when hidden. <kbd>{count} Space .</kbd> opens scratch number {count}."},
|
|
{"k": "<CR>", "m": ["n", "x"], "d": "Run the Lua scratch buffer (or the selection) and show results inline", "s": "snacks", "cat": "Buffer & tab", "ctx": "Snacks scratch window", "n": "Only in Lua scratch buffers (<code>win_by_ft.lua</code>), via <code>Snacks.debug.run</code>."},
|
|
{"k": "<leader>z", "m": ["n"], "d": "Leave zen mode (zen windows do not map q)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks zen / zoom", "n": "Zen opens the buffer in a centred 120-col float with dimming and git signs hidden; <kbd>Space Z</kbd> is the zoom variant (full width, keeps statusline/tabline). Run the same key again, or <code>:close</code>, to restore."},
|
|
{"k": "q", "m": ["n"], "d": "Close the notification history window", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks notification history", "n": "<kbd>Space n</kbd> opens <code>Snacks.notifier.show_history()</code> (the second of two <kbd>Space n</kbd> maps in <code>lua/keymaps.lua</code>, so it wins over the notifications picker)."},
|
|
{"k": "<CR>", "m": ["i", "n"], "d": "Confirm the input (or accept the completion item)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<Esc>", "m": ["i"], "d": "Close completion, else leave insert mode in the prompt", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<Esc>", "m": ["n"], "d": "Cancel the prompt", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "q", "m": ["n"], "d": "Cancel the prompt", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<Up>", "m": ["i", "n"], "d": "Previous entry from the input history", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<Down>", "m": ["i", "n"], "d": "Next entry from the input history", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<Tab>", "m": ["i"], "d": "Trigger / cycle completion (when the prompt supports it)", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<C-w>", "m": ["i"], "d": "Delete the word before the cursor", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (<kbd>Space c R</kbd>), explorer add/rename/copy and any plugin calling <code>vim.ui.input</code>."},
|
|
{"k": "<CR>", "m": ["n"], "d": "Open the actions menu for the issue / PR", "s": "snacks", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "i", "m": ["n"], "d": "Edit the issue / PR (GitHub)", "s": "snacks", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "a", "m": ["n"], "d": "Add a comment", "s": "snacks", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "c", "m": ["n"], "d": "Close the issue / PR (GitHub) — or check out the PR (Forgejo)", "s": "snacks", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer", "n": "In snacks-tea (Forgejo/Gitea) buffers <kbd>c</kbd> is checkout and <kbd>x</kbd> closes."},
|
|
{"k": "o", "m": ["n"], "d": "Reopen the issue / PR", "s": "snacks", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "d", "m": ["n"], "d": "View the PR diff (Forgejo)", "s": "snacks-tea", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "A", "m": ["n"], "d": "Approve the PR (Forgejo)", "s": "snacks-tea", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "x", "m": ["n"], "d": "Close the PR (Forgejo)", "s": "snacks-tea", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "r", "m": ["n"], "d": "Refresh the PR buffer (Forgejo)", "s": "snacks-tea", "cat": "Git", "ctx": "GitHub / Forgejo PR buffer"},
|
|
{"k": "<C-s>", "m": ["n", "i"], "d": "Submit the comment / review being written", "s": "snacks-tea", "cat": "Git", "ctx": "Forgejo comment window", "n": "The comment scratch window also has <kbd>Alt-w</kbd> cycle, <kbd>Ctrl-b</kbd>/<kbd>Ctrl-f</kbd> preview scroll."},
|
|
{"k": "a", "m": ["n", "x"], "d": "Comment on the diff line(s) under the cursor (preview window)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_diff", "n": "GitHub PR diff picker (<code>snacks.gh</code>). snacks-tea's Forgejo diff picker maps the same keys to actions it never defines, so they do nothing there."},
|
|
{"k": "<CR>", "m": ["n", "x"], "d": "Open the actions menu for the diff line(s) (preview window)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_diff", "n": "GitHub PR diff picker (<code>snacks.gh</code>). snacks-tea's Forgejo diff picker maps the same keys to actions it never defines, so they do nothing there."},
|
|
{"k": "<C-Space>", "m": ["i"], "d": "Open the completion menu; again: show docs, again: hide docs", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Never falls back, so <kbd>Ctrl-Space</kbd> always goes to blink in insert mode.", "e": 1, "sl": "complete"},
|
|
{"k": "<C-y>", "m": ["i"], "d": "Accept the selected item (the first one if none is selected)", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to <kbd>Ctrl-y</kbd> (insert the character above) when the menu is closed.", "e": 1, "sl": "accept"},
|
|
{"k": "<C-e>", "m": ["i"], "d": "Close the menu and undo the previewed insert", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to <kbd>Ctrl-e</kbd> (insert the character below) when the menu is closed.", "e": 1, "sl": "dismiss"},
|
|
{"k": "<C-n>", "m": ["i"], "d": "Select the next item; with the menu closed, open it on the first item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Configured in <code>lua/plugins.lua</code>: <code>{ \"select_next\", \"show_and_insert\" }</code>. <kbd>Ctrl-p</kbd> mirrors it (opens on the last item). Built-in keyword completion is still on <kbd>Ctrl-x Ctrl-n</kbd>"},
|
|
{"k": "<C-p>", "m": ["i"], "d": "Select the previous item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Same as <kbd>Ctrl-n</kbd>: no fallback to built-in completion."},
|
|
{"k": "<Down>", "m": ["i"], "d": "Select the next item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "With the menu closed it falls back to this config's insert <kbd>Down</kbd> (move by display line, <code>lua/keymaps.lua</code>)."},
|
|
{"k": "<Up>", "m": ["i"], "d": "Select the previous item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "With the menu closed it falls back to this config's insert <kbd>Up</kbd> (move by display line)."},
|
|
{"k": "<C-f>", "m": ["i"], "d": "Scroll the documentation window down", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to <kbd>Ctrl-f</kbd> when no docs window is open."},
|
|
{"k": "<C-b>", "m": ["i"], "d": "Scroll the documentation window up", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to <kbd>Ctrl-b</kbd> when no docs window is open."},
|
|
{"k": "<Tab>", "m": ["i", "s"], "d": "Next snippet field → apply AI next edit → accept ghost text → Tab", "s": "config", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Custom chain in <code>lua/plugins.lua</code>: 1) <code>snippet_forward</code> if a snippet is active; 2) <code>sidekick.nes_jump_or_apply()</code> (jump to, then apply, a Copilot next-edit suggestion; suggestions are cleared on insert, so rarely fires here); 3) <code>vim.lsp.inline_completion.get()</code> accepts native LSP ghost text (Copilot); 4) a literal Tab. <kbd>Tab</kbd> does <em>not</em> accept the blink menu; use <kbd>Ctrl-y</kbd>.", "e": 1, "sl": "tab chain"},
|
|
{"k": "<S-Tab>", "m": ["i", "s"], "d": "Jump to the previous snippet field", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to <kbd>Shift-Tab</kbd>."},
|
|
{"k": "<Tab>", "m": ["c"], "d": "Show the menu and insert the first match (accepts if it's the only one); then next", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Ghost text previews the top match; the menu does not open by itself on <code>:</code> (only in the cmdline window)."},
|
|
{"k": "<S-Tab>", "m": ["c"], "d": "Show the menu and insert the last match; then previous item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)"},
|
|
{"k": "<C-Space>", "m": ["c"], "d": "Open the completion menu", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)"},
|
|
{"k": "<C-n>", "m": ["c"], "d": "Select the next item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "With the menu closed it falls back to <kbd>Ctrl-n</kbd>: next completion match after <kbd>Tab</kbd>, otherwise the next (newer) command-line from history."},
|
|
{"k": "<C-p>", "m": ["c"], "d": "Select the previous item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "With the menu closed it falls back to <kbd>Ctrl-p</kbd>: previous completion match, otherwise the previous (older) command-line from history."},
|
|
{"k": "<Right>", "m": ["c"], "d": "Select the next item while the menu is open", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Arrow keys only move the cursor when the menu is closed."},
|
|
{"k": "<Left>", "m": ["c"], "d": "Select the previous item while the menu is open", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Arrow keys only move the cursor when the menu is closed."},
|
|
{"k": "<C-y>", "m": ["c"], "d": "Accept the selected item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)"},
|
|
{"k": "<C-e>", "m": ["c"], "d": "Close the menu and undo the preview", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Falls back to <kbd>Ctrl-e</kbd> (cursor to end of line)."},
|
|
{"k": "<End>", "m": ["c"], "d": "Hide the menu", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Falls back to <kbd>End</kbd>."},
|
|
{"k": "<C-n> / <C-p> / <C-Space>", "m": ["t"], "d": "blink's terminal-mode keys: usually NOT active here", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion (terminal)", "n": "blink enables terminal mode by default and inherits the insert keymap (minus snippet keys), but has no terminal sources and installs the maps only on a direct <code>n→t</code> mode change. Snacks terminals go <code>n→nt→t</code>, so in testing no blink maps were set and keys reached the shell. If they ever do get installed, <kbd>Ctrl-n</kbd>/<kbd>Ctrl-p</kbd>/<kbd>Ctrl-Space</kbd> are swallowed (verified by forcing them)."},
|
|
{"k": "Copilot items", "m": ["i"], "d": "Copilot suggestions also appear as blink menu items (kind Copilot, ranked first)", "s": "blink-copilot", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Source <code>copilot</code> via blink-copilot: up to 3 completions, <code>score_offset = 100</code>. Sources order: lsp, path, snippets, buffer, copilot. Accept like any item with <kbd>Ctrl-y</kbd>."},
|
|
{"k": "ghost text", "m": ["i"], "d": "Native LSP inline completion (Copilot ghost text) is enabled", "s": "config", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "<code>vim.lsp.inline_completion.enable()</code> in <code>lua/plugins.lua</code>. Accept with <kbd>Tab</kbd> (3rd step of the chain); there is no key to cycle alternatives (<code>vim.lsp.inline_completion.select()</code> is unmapped)."},
|
|
{"k": "<Tab>", "m": ["n"], "d": "Jump to the pending next-edit suggestion; press again to apply it", "s": "config", "cat": "Completion & AI", "ctx": "Sidekick NES (Copilot next edit)", "n": "<code>lua/keymaps.lua</code> maps normal <kbd>Tab</kbd> to <code>sidekick.nes_jump_or_apply()</code>; with no suggestion it falls back to jump forward. <kbd>Ctrl-i</kbd> is mapped separately for terminals that can tell the two apart", "e": 1, "sl": "NES"},
|
|
{"k": "<Esc>", "m": ["n", "i"], "d": "Dismiss the current next-edit suggestion", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick NES (Copilot next edit)", "n": "Not a mapping: a <code>vim.on_key</code> watcher clears suggestions whenever <kbd>Esc</kbd> is typed (<code>nes.clear.esc = true</code>). Suggestions refresh on leaving insert mode and on text changes."},
|
|
{"k": "<C-b>", "m": ["n", "t"], "d": "Pick buffers to send to the AI tool", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<C-f>", "m": ["n", "t"], "d": "Pick files to send to the AI tool", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<C-p>", "m": ["t"], "d": "Insert a prompt or context (incl. this config's haunt_all / haunt_buffer)", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code>. This config maps no key to open the CLI; use <code>:Sidekick cli toggle</code> / <code>select</code>. Custom prompts <code>haunt_all</code> and <code>haunt_buffer</code> send Haunt bookmarks."},
|
|
{"k": "<C-.>", "m": ["n", "t"], "d": "Hide the CLI window", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<C-z>", "m": ["n", "t"], "d": "Go back to the previous window, keeping the CLI open", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<C-q>", "m": ["t"], "d": "Leave terminal mode (normal mode in the CLI)", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<C-q>", "m": ["n"], "d": "Hide the CLI window", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "q", "m": ["n"], "d": "Hide the CLI window", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<CR>", "m": ["n"], "d": "Send Enter to the tool and go back to terminal mode", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<C-h>", "m": ["t"], "d": "Move to the window on the left (split layouts only)", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from <code>sidekick/config.lua</code> (CLI window opens on the right, 80 cols). No key opens it in this config: use <code>:Sidekick cli toggle</code>."},
|
|
{"k": "<BS>", "m": ["n", "x", "o"], "d": "Go back up one level in the key tree", "s": "which-key", "cat": "Help", "ctx": "which-key popup", "e": 1},
|
|
{"k": "<Esc>", "m": ["n", "x", "o"], "d": "Close the popup (and cancel the pending keys)", "s": "which-key", "cat": "Help", "ctx": "which-key popup"},
|
|
{"k": "<C-d>", "m": ["n", "x", "o"], "d": "Scroll the popup down", "s": "which-key", "cat": "Help", "ctx": "which-key popup"},
|
|
{"k": "<C-u>", "m": ["n", "x", "o"], "d": "Scroll the popup up", "s": "which-key", "cat": "Help", "ctx": "which-key popup"},
|
|
{"k": "{key}", "m": ["n", "x", "o"], "d": "Continue the key sequence / run the mapping shown next to it", "s": "which-key", "cat": "Help", "ctx": "which-key popup", "n": "The popup appears 200 ms after a prefix such as <kbd>Space</kbd>, <kbd>g</kbd>, <kbd>z</kbd>, <kbd>]</kbd> (0 ms for its plugin popups). Groups show with <code>+</code>."},
|
|
{"k": "\"", "m": ["n", "x"], "d": "Popup listing every register with its contents; type the register name", "s": "which-key", "cat": "Register & macro", "ctx": "which-key popup", "n": "which-key's <code>registers</code> plugin; the popup appears immediately."},
|
|
{"k": "<C-r>", "m": ["i", "c"], "d": "Popup listing registers before inserting one", "s": "which-key", "cat": "Register & macro", "ctx": "which-key popup", "n": "Verified as a buffer-local <code>which-key-trigger registers</code> map in insert mode."},
|
|
{"k": "' ` g' g`", "m": ["n"], "d": "Popup listing marks with their line/file; type the mark name", "s": "which-key", "cat": "Mark & jump", "ctx": "which-key popup", "n": "which-key's <code>marks</code> plugin (normal mode only; its triggers are not installed in Visual or Operator-pending mode)."},
|
|
{"k": "z=", "m": ["n"], "d": "Spelling suggestions popup: press 1-9, 0, a-z… to replace the word", "s": "which-key", "cat": "Spell", "ctx": "which-key popup", "n": "Shows 20 suggestions for the bad word under the cursor. With a count (<kbd>2z=</kbd>) Vim's own behaviour runs."},
|
|
{"k": "<localleader>r", "m": ["n"], "d": "Replace: apply the replacement to every match", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>.", "e": 1},
|
|
{"k": "<localleader>s", "m": ["n"], "d": "Sync all: write your edits of result lines back to the files", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Edit the result lines like normal text, then sync. Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>l", "m": ["n"], "d": "Sync the result line under the cursor", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>n", "m": ["n"], "d": "Sync the result line under the cursor, then move to the next match", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>p", "m": ["n"], "d": "Sync the result line under the cursor, then move to the previous match", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>v", "m": ["n"], "d": "Sync all changes in the current file", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>j", "m": ["n"], "d": "Apply the change on this line, drop it from the list, open the next one", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>k", "m": ["n"], "d": "Apply the change on this line, drop it from the list, open the previous one", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>q", "m": ["n"], "d": "Send the results to the quickfix list", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>t", "m": ["n"], "d": "Open search history (Enter picks an entry)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>a", "m": ["n"], "d": "Add the current search to history", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>f", "m": ["n"], "d": "Refresh (re-run the search)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>o", "m": ["n"], "d": "Open the match location (cursor stays in Grug-far)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>i", "m": ["n"], "d": "Preview the match location in a float", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>b", "m": ["n"], "d": "Abort the running search / replace", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>c", "m": ["n"], "d": "Close Grug-far", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>w", "m": ["n"], "d": "Toggle showing the underlying search command (rg / ast-grep)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>e", "m": ["n"], "d": "Cycle the search engine (ripgrep → astgrep → astgrep-rules)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<localleader>x", "m": ["n"], "d": "Cycle the replacement interpreter (default → lua → vimscript)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is <kbd>\\</kbd>, so e.g. <kbd>\\ r</kbd>."},
|
|
{"k": "<CR>", "m": ["n"], "d": "Go to the match location (in the other window)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "In the history buffer <kbd>Enter</kbd> picks the history entry."},
|
|
{"k": "<Down>", "m": ["n"], "d": "Open the next match location", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"},
|
|
{"k": "<Up>", "m": ["n"], "d": "Open the previous match location", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"},
|
|
{"k": "<Tab>", "m": ["n"], "d": "Jump to the next input field (Search, Replace, Files filter, Flags, Paths)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"},
|
|
{"k": "<S-Tab>", "m": ["n"], "d": "Jump to the previous input field", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"},
|
|
{"k": "g?", "m": ["n"], "d": "Show Grug-far help", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"},
|
|
{"k": "<CR>", "m": ["n"], "d": "Restore the buffer to the undo state under the cursor", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree", "n": "Toggle with <kbd>Space u u</kbd>. Config: focus jumps into the tree on toggle, 32-col panel, diff panel closed by default (<kbd>D</kbd>), help line hidden (<kbd>?</kbd> still works), Nerd Font tree glyphs. Persistent <code>undofile</code> is on, so history survives restarts.", "e": 1},
|
|
{"k": "J", "m": ["n"], "d": "Move to the previous (older) undo state", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "K", "m": ["n"], "d": "Move to the next (newer) undo state", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "<", "m": ["n"], "d": "Move to the previous saved state", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": ">", "m": ["n"], "d": "Move to the next saved state", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "u", "m": ["n"], "d": "Undo (in the target buffer)", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "<C-r>", "m": ["n"], "d": "Redo (in the target buffer)", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "D", "m": ["n"], "d": "Toggle the diff panel", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "=", "m": ["n"], "d": "Set the diff marker on this state (diff against it)", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "M", "m": ["n"], "d": "Clear the diff marker", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "T", "m": ["n"], "d": "Toggle relative / absolute timestamps", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "C", "m": ["n"], "d": "Clear the undo history (asks first)", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "<Tab>", "m": ["n"], "d": "Move focus back to the edited buffer", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "?", "m": ["n"], "d": "Toggle quick help", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "q", "m": ["n"], "d": "Close the undotree panel", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree"},
|
|
{"k": "<CR>", "m": ["n"], "d": "Smart action: follow link / list tag / fold heading / toggle checkbox", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>. In order: accept an inlay-hint action; follow the link under the cursor; open the tag picker on a tag; <code>za</code> on a heading if Markdown folding is on; otherwise toggle the line's checkbox (<code>create_new = true</code>, so plain lines become <code>- [ ]</code>; states cycle <code>[ ] [~] [!] [>] [x]</code>). In vault notes this shadows the global Leap <kbd>Enter</kbd>.", "e": 1},
|
|
{"k": "]o", "m": ["n"], "d": "Jump to the next link in the note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>."},
|
|
{"k": "[o", "m": ["n"], "d": "Jump to the previous link in the note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>."},
|
|
{"k": "gd", "m": ["n"], "d": "Follow the [[link]] under the cursor (obsidian LSP definition)", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of <code>[[</code> links and <code>#</code> tags), so the config's LSP keys work on notes."},
|
|
{"k": "gr", "m": ["n"], "d": "List backlinks / references to this note or heading (obsidian LSP)", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of <code>[[</code> links and <code>#</code> tags), so the config's LSP keys work on notes."},
|
|
{"k": "<leader>cr", "m": ["n"], "d": "Rename the note and update every link to it (LSP rename via IncRename)", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of <code>[[</code> links and <code>#</code> tags), so the config's LSP keys work on notes."},
|
|
{"k": "<leader>ca", "m": ["n"], "d": "Obsidian code actions (e.g. link selection to new note, extract note)", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of <code>[[</code> links and <code>#</code> tags), so the config's LSP keys work on notes."},
|
|
{"k": "<leader>ss", "m": ["n"], "d": "Headings outline of the note (LSP document symbols)", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes", "n": "Only in Markdown notes inside the vaults <code>~/Documents/Notebook</code> and <code>~/Documents/Notes</code>. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of <code>[[</code> links and <code>#</code> tags), so the config's LSP keys work on notes."},
|
|
{"k": ":Obsidian today", "m": [":"], "d": "Open (or create) today's daily note", "s": "obsidian.nvim", "cat": "Notes", "n": "<code>legacy_commands = false</code>: only the <code>:Obsidian <sub></code> form exists. Bare <code>:Obsidian</code> opens a menu of all subcommands."},
|
|
{"k": ":Obsidian yesterday", "m": [":"], "d": "Open the daily note for the previous working day", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian tomorrow", "m": [":"], "d": "Open the daily note for the next working day", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian dailies", "m": [":"], "d": "Picker of daily notes", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian new", "m": [":"], "d": "Create a new note (title as argument or prompt)", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian new_from_template", "m": [":"], "d": "Create a new note from a template", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian open", "m": [":"], "d": "Open a note in the Obsidian app", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian quick_switch", "m": [":"], "d": "Fuzzy-find a note by name and open it", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian search", "m": [":"], "d": "Grep the vault", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian tags", "m": [":"], "d": "Picker of tags and the notes that use them", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian backlinks", "m": [":"], "d": "Picker of notes linking to this note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian links", "m": [":"], "d": "Picker of all links in this note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian follow_link", "m": [":"], "d": "Follow the link under the cursor", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian link", "m": [":"], "d": "Link the selection to an existing note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian link_new", "m": [":"], "d": "Link the selection to a new note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian extract_note", "m": [":"], "d": "Move the selection into a new note and link it", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian toggle_checkbox", "m": [":"], "d": "Cycle the checkbox state on the line(s)", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian rename", "m": [":"], "d": "Rename the note and update backlinks", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian template", "m": [":"], "d": "Insert a template at the cursor", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian paste_img", "m": [":"], "d": "Paste an image from the clipboard into the vault", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian toc", "m": [":"], "d": "Table of contents of this note in a picker", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian footnotes", "m": [":"], "d": "Picker of footnotes in this note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Obsidian notes"},
|
|
{"k": ":Obsidian workspace", "m": [":"], "d": "Show or switch the workspace (notebook / notes)", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian unique_note", "m": [":"], "d": "Create a note with a unique (timestamp) id", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian bookmarks", "m": [":"], "d": "Picker of bookmarked notes", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian rebuild_cache", "m": [":"], "d": "Rebuild the vault cache", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian check", "m": [":"], "d": "Check the vault for problems", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian sync", "m": [":"], "d": "Run an Obsidian sync action", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian help", "m": [":"], "d": "Find a page in obsidian.nvim's bundled help docs", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": ":Obsidian helpgrep", "m": [":"], "d": "Grep obsidian.nvim's help vault", "s": "obsidian.nvim", "cat": "Notes"},
|
|
{"k": "Bookmark signs", "m": ["n"], "d": "Haunt: bookmarks show a sign and the annotation as end-of-line virtual text", "s": "haunt", "cat": "Mark & jump", "ctx": "Haunt bookmarks", "n": "<kbd>Space h a</kbd> annotates (creating the bookmark if needed; empty input cancels), <kbd>Space h t</kbd> toggles the annotation text, <kbd>Space h n</kbd>/<kbd>p</kbd> walk bookmarks, <kbd>Space h d</kbd> deletes, <kbd>Space h l</kbd> lists. Stored per project and per git branch."},
|
|
{"k": ":IncRename {new}", "m": [":"], "d": "Rename the LSP symbol with a live preview of every change", "s": "inc-rename", "cat": "LSP & diagnostics", "ctx": "IncRename (Space c r)", "n": "<kbd>Space c r</kbd> types <code>:IncRename <cword></code> for you; with Noice's <code>inc_rename</code> preset the command line appears as a small popup above the cursor. Edit the name and watch all occurrences update (highlighted <code>Substitute</code>); <kbd>Enter</kbd> renames across files, <kbd>Esc</kbd> cancels. An empty name cancels the preview.", "e": 1},
|
|
{"k": "format on save", "m": ["n"], "d": "Buffers are formatted on every write", "s": "conform", "cat": "Edit", "ctx": "Conform", "n": "<code>format_on_save</code> (500 ms, LSP fallback) in <code>lua/plugins.lua</code>; set <code>vim.g.disable_autoformat</code> / <code>vim.b.disable_autoformat</code> to turn it off. Autosave on InsertLeave/TextChanged means this runs often."},
|
|
{"k": ":Gitsigns nav_hunk next", "m": [":"], "d": "Jump to the next changed hunk", "s": "gitsigns", "cat": "Git", "n": "Hunk navigation is NOT mapped in this config (no ]c/[c, no <leader>h… gitsigns keys); use these commands. The older <code>next_hunk</code> / <code>prev_hunk</code> still work but are deprecated."},
|
|
{"k": ":Gitsigns nav_hunk prev", "m": [":"], "d": "Jump to the previous changed hunk", "s": "gitsigns", "cat": "Git", "n": "Hunk navigation is NOT mapped in this config (no ]c/[c, no <leader>h… gitsigns keys); use these commands. The older <code>next_hunk</code> / <code>prev_hunk</code> still work but are deprecated."},
|
|
{"k": ":Gitsigns nav_hunk first|last", "m": [":"], "d": "Jump to the first / last hunk in the file", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns preview_hunk", "m": [":"], "d": "Show the hunk's diff in a float", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns preview_hunk_inline", "m": [":"], "d": "Show the hunk's removed lines inline", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns stage_hunk", "m": [":"], "d": "Stage the hunk under the cursor (or the range); on a staged hunk it unstages", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns reset_hunk", "m": [":"], "d": "Discard the hunk under the cursor (or the range)", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns undo_stage_hunk", "m": [":"], "d": "Undo the last stage_hunk (deprecated: run stage_hunk on the staged hunk)", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns stage_buffer", "m": [":"], "d": "Stage the whole file", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns reset_buffer", "m": [":"], "d": "Discard all changes in the file", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns reset_buffer_index", "m": [":"], "d": "Unstage the whole file", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns select_hunk", "m": [":"], "d": "Visually select the hunk", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns blame_line", "m": [":"], "d": "Show blame for the current line in a float", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns blame", "m": [":"], "d": "Open a full-file blame side panel", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns diffthis", "m": [":"], "d": "Diff the file against the index (or a revision)", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns show", "m": [":"], "d": "Open the file as it was at a revision", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns toggle_current_line_blame", "m": [":"], "d": "Toggle line blame (shown in lualine here, not virtual text)", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns toggle_word_diff", "m": [":"], "d": "Toggle word-level diff highlighting", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns toggle_linehl", "m": [":"], "d": "Toggle highlighting changed lines", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns toggle_numhl", "m": [":"], "d": "Toggle highlighting changed line numbers", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns toggle_deleted", "m": [":"], "d": "Toggle showing deleted lines inline (deprecated: use preview_hunk_inline)", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns setqflist all", "m": [":"], "d": "Send hunks to the quickfix list (current file, or all)", "s": "gitsigns", "cat": "Git"},
|
|
{"k": ":Gitsigns change_base", "m": [":"], "d": "Diff signs against another revision", "s": "gitsigns", "cat": "Git"},
|
|
{"k": "<CR>", "m": ["n"], "d": "Open the blame context menu", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns blame panel (:Gitsigns blame)"},
|
|
{"k": "r", "m": ["n"], "d": "Re-blame at this commit", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns blame panel (:Gitsigns blame)"},
|
|
{"k": "R", "m": ["n"], "d": "Re-blame at the commit's parent", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns blame panel (:Gitsigns blame)"},
|
|
{"k": "d", "m": ["n"], "d": "Diff this commit (new tab)", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns blame panel (:Gitsigns blame)"},
|
|
{"k": "s", "m": ["n"], "d": "Show the commit in a vertical split", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns blame panel (:Gitsigns blame)"},
|
|
{"k": "S", "m": ["n"], "d": "Show the commit in a new tab", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns blame panel (:Gitsigns blame)"},
|
|
{"k": "q", "m": ["n"], "d": "Close the gitsigns popup (after entering it)", "s": "gitsigns", "cat": "Git", "ctx": "Gitsigns preview / blame float"},
|
|
{"k": "q", "m": ["n"], "d": "Close the message split / popup (:Noice, :Noice last, errors)", "s": "noice", "cat": "Command line", "ctx": "Noice", "n": "Long messages (≥ 20 lines) go to a split (<code>long_message_to_split</code>). <code>:</code> opens a centred command palette popup, <code>/</code> and <code>?</code> stay at the bottom (<code>bottom_search</code>). Noice defines no other keys; scrolling LSP docs with <kbd>Ctrl-f</kbd>/<kbd>Ctrl-b</kbd> is not configured."},
|
|
{"k": "K / gx", "m": ["n"], "d": "Inside Noice hover/docs windows: open the link under the cursor", "s": "noice", "cat": "LSP & diagnostics", "ctx": "Noice", "n": "Buffer-local in Noice markdown views; otherwise they fall through to normal <kbd>K</kbd>/<kbd>gx</kbd>."},
|
|
{"k": "i", "m": ["n"], "d": "Install the package under the cursor", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "u", "m": ["n"], "d": "Update / reinstall the package", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "X", "m": ["n"], "d": "Uninstall the package", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "c", "m": ["n"], "d": "Check the package for a new version", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "U", "m": ["n"], "d": "Update all installed packages", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "C", "m": ["n"], "d": "Check which packages are outdated", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "<CR>", "m": ["n"], "d": "Expand the package details / toggle its install log", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "<C-c>", "m": ["n"], "d": "Cancel the installation", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "<C-f>", "m": ["n"], "d": "Filter by language", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "1 2 3 4 5", "m": ["n"], "d": "Show All / LSP / DAP / Linter / Formatter packages", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "g?", "m": ["n"], "d": "Toggle help", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "q", "m": ["n"], "d": "Close the window", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "<Esc>", "m": ["n"], "d": "Clear the language filter / search, else close", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"},
|
|
{"k": "y{motion}", "m": ["n", "x"], "d": "Yank into the paste window (edit, then send it to the shell)", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback", "n": "A plain yank opens a small paste window below; <code>\"+y</code> instead copies to the clipboard and quits back to Kitty. Only inside a kitty-scrollback.nvim session (opened from a Kitty mapping generated by <code>:KittyScrollbackGenerateKittens</code>)."},
|
|
{"k": "<leader>y{motion}", "m": ["n"], "d": "Yank {motion} to the system clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "<leader>y", "m": ["x"], "d": "Yank the selection to the system clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "<leader>yy", "m": ["n"], "d": "Yank the line to the clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "<leader>Y", "m": ["n"], "d": "Yank to end of line to the clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback", "n": "The visual <kbd>Space Y</kbd> default points at an undefined <Plug> map in this plugin version, so it does nothing."},
|
|
{"k": "<C-CR>", "m": ["n", "i", "x"], "d": "Execute the paste window text (or selection) in the shell", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "<S-CR>", "m": ["n", "i", "x"], "d": "Paste the text (or selection) to the shell without running it", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "g?", "m": ["n"], "d": "Toggle the paste window's key footer", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "q", "m": ["n"], "d": "Close the paste window, or quit back to Kitty from the scrollback", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": "<C-c>", "m": ["n", "i", "t"], "d": "Quit back to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"},
|
|
{"k": ":Browse [url]", "m": [":"], "d": "gx.nvim: open the URL / file / plugin / GitHub ref / package under the cursor", "s": "gx", "cat": "Misc", "n": "Also on <kbd>gx</kbd> (Normal and Visual, <code>lua/keymaps.lua:358</code>). Handlers: plugin names → GitHub, <code>#123</code> issues, package.json deps, search fallback."},
|
|
{"k": ":Qalc[!] [file]", "m": [":"], "d": "Open a calculator buffer: each line is evaluated by qalc as you type", "s": "qalc", "cat": "Misc", "n": "Results appear as virtual text; <code>!</code> makes it a scratch buffer. <code>*.qalc</code> files attach automatically. <code>:QalcYank [reg]</code> yanks the result of the current line (the unnamed register when none is given)."},
|
|
{"k": "<leader>cb…", "m": ["n", "v"], "d": "Comment boxes: cbb centred box, cbl centred line, cbd delete, cbk catalog", "s": "comment-box", "cat": "Comment", "ctx": "Comment-box", "n": "The box and line commands take a style number (see the catalog) and work on a range; e.g. <code>:CBccbox 3</code>. <code>:CBd</code> removes a box, <code>:CBy</code> yanks a box's text without the frame."},
|
|
{"k": ":Mason", "m": [":"], "d": "Open Mason's package manager window", "s": "mason", "cat": "LSP & diagnostics"},
|
|
{"k": ":Sidekick nes toggle", "m": [":"], "d": "Enable / disable Copilot next-edit suggestions", "s": "sidekick", "cat": "Completion & AI", "n": "Other subcommands: <code>nes apply|jump|update|clear|enable|disable</code>, <code>cli toggle|show|hide|close|focus|select|send|prompt</code>."},
|
|
{"k": ":Sidekick cli toggle", "m": [":"], "d": "Open / hide the AI CLI terminal (claude, codex, copilot, gemini…)", "s": "sidekick", "cat": "Completion & AI"},
|
|
{"k": ":Noice", "m": [":"], "d": "Message history in a split (also :Noice last / errors / all / dismiss)", "s": "noice", "cat": "Command line"},
|
|
{"k": "<C-k>", "m": ["i"], "d": "Not mapped by blink: insert a digraph (Vim's i_CTRL-K)", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "The preset's signature toggle is disabled (<code>[\"<C-k>\"] = false</code>) so digraphs work; signature help shows automatically, or press Neovim's <kbd>Ctrl-s</kbd>"}
|
|
],
|
|
"commands": {
|
|
"BlinkCmp": "blink.cmp: status (checkhealth), build or build-log of the fuzzy matcher",
|
|
"Browse": "gx.nvim (also on gx): open URL, path, plugin, GitHub issue or package under the cursor / given arg",
|
|
"CBacbox": "Centred adapted box (box fits the text)",
|
|
"CBalbox": "Left-aligned adapted box (deprecated alias of CBlabox)",
|
|
"CBcabox": "Centred adapted box (deprecated alias of CBacbox)",
|
|
"CBcatalog": "Open the comment-box style catalog",
|
|
"CBccbox": "Centred box, text centred",
|
|
"CBccline": "Centred titled line, title centred",
|
|
"CBclbox": "Centred box, text left-aligned",
|
|
"CBcline": "Centred line (no title)",
|
|
"CBclline": "Centred titled line, title left-aligned",
|
|
"CBcrbox": "Centred box, text right-aligned",
|
|
"CBcrline": "Centred titled line, title right-aligned",
|
|
"CBd": "Remove the box or titled line around the range",
|
|
"CBlabox": "Left-aligned adapted box (box fits the text)",
|
|
"CBlcbox": "Left-aligned box, text centred",
|
|
"CBlcline": "Left-aligned titled line, title centred",
|
|
"CBline": "Left-aligned line (no title)",
|
|
"CBllbox": "Left-aligned box, text left-aligned",
|
|
"CBlline": "Left-aligned line (no title)",
|
|
"CBllline": "Left-aligned titled line, title left-aligned",
|
|
"CBlrbox": "Left-aligned box, text right-aligned",
|
|
"CBlrline": "Left-aligned titled line, title right-aligned",
|
|
"CBrabox": "Right-aligned adapted box (box fits the text)",
|
|
"CBrcbox": "Right-aligned box, text centred",
|
|
"CBrcline": "Right-aligned titled line, title centred",
|
|
"CBrlbox": "Right-aligned box, text left-aligned",
|
|
"CBrline": "Right-aligned line (no title)",
|
|
"CBrlline": "Right-aligned titled line, title left-aligned",
|
|
"CBrrbox": "Right-aligned box, text right-aligned",
|
|
"CBrrline": "Right-aligned titled line, title right-aligned",
|
|
"CBy": "Yank the text of a box or titled line without the frame",
|
|
"Catppuccin": "Switch Catppuccin flavour (latte, frappe, macchiato, mocha)",
|
|
"CatppuccinCompile": "Recompile the Catppuccin highlight cache",
|
|
"ConformInfo": "Show Conform's formatters, their status and the log",
|
|
"FZF": "fzf.vim (system): fuzzy-find files in a directory with the fzf binary",
|
|
"Gitsigns": "Gitsigns actions: nav_hunk, stage_hunk, blame_line, diffthis… (no keys mapped)",
|
|
"GrugFar": "Open Grug-far search & replace (optional engine arg; a visual range prefills the search)",
|
|
"GrugFarWithin": "Grug-far limited to the visual selection",
|
|
"HauntAnnotate": "Add or edit the annotation of the bookmark on this line",
|
|
"HauntChangeDataDir": "Change where Haunt stores bookmarks",
|
|
"HauntClear": "Clear all bookmarks in the current file",
|
|
"HauntClearAll": "Clear every bookmark",
|
|
"HauntDelete": "Delete the bookmark on this line",
|
|
"HauntList": "Picker of all bookmarks",
|
|
"HauntMigrate": "Migrate bookmarks from v1 to v2 storage",
|
|
"HauntNext": "Jump to the next bookmark",
|
|
"HauntPrev": "Jump to the previous bookmark",
|
|
"HauntQf": "Send this buffer's annotations to the quickfix list",
|
|
"HauntQfAll": "Send all annotations to the quickfix list",
|
|
"HauntReload": "Reload bookmarks from disk",
|
|
"HauntToggle": "Toggle annotation visibility",
|
|
"IncRename": "LSP rename with live preview of all changes (Space c r)",
|
|
"JdtShowLogs": "nvim-jdtls (system package): show the jdtls language server logs",
|
|
"JdtWipeDataAndRestart": "nvim-jdtls (system package): wipe the workspace data and restart jdtls",
|
|
"KittyScrollbackCheckHealth": "Run kitty-scrollback.nvim health checks",
|
|
"KittyScrollbackGenerateCommandLineEditing": "Print shell config to edit the command line in kitty-scrollback",
|
|
"KittyScrollbackGenerateKittens": "Print kitty.conf mappings that launch kitty-scrollback",
|
|
"LazyDev": "lazydev.nvim: debug info / show the Lua LSP library settings",
|
|
"LspInstall": "mason-lspconfig: install LSP servers",
|
|
"LspUninstall": "mason-lspconfig: uninstall LSP servers",
|
|
"Mason": "Open Mason's package manager window",
|
|
"MasonInstall": "Install Mason packages by name",
|
|
"MasonLog": "Open the Mason log",
|
|
"MasonUninstall": "Uninstall Mason packages",
|
|
"MasonUninstallAll": "Uninstall every Mason package",
|
|
"MasonUpdate": "Update the Mason registries",
|
|
"Noice": "Noice message history (subcommands: last, errors, all, dismiss, pick…)",
|
|
"NoiceAll": "All Noice messages in a split",
|
|
"NoiceConfig": "Show Noice's active configuration",
|
|
"NoiceDebug": "Toggle Noice debug mode",
|
|
"NoiceDisable": "Disable Noice (back to the native UI)",
|
|
"NoiceDismiss": "Dismiss all visible Noice messages",
|
|
"NoiceEnable": "Enable Noice",
|
|
"NoiceErrors": "Noice error messages in a popup",
|
|
"NoiceFzf": "Noice history in fzf-lua (not installed here)",
|
|
"NoiceHistory": "Noice message history in a split",
|
|
"NoiceLast": "Show the last Noice message in a popup",
|
|
"NoiceLog": "Open the Noice log file",
|
|
"NoicePick": "Noice history in the Snacks picker",
|
|
"NoiceRoutes": "Show Noice's message routes",
|
|
"NoiceSnacks": "Noice history in the Snacks picker",
|
|
"NoiceStats": "Show Noice statistics",
|
|
"NoiceTelescope": "Noice history in Telescope (not installed here)",
|
|
"NoiceViewstats": "Show Noice view statistics",
|
|
"Obsidian": "obsidian.nvim: :Obsidian today|new|search|quick_switch|tags|…; bare opens a menu",
|
|
"Qalc": "Open a qalc calculator buffer (! for a scratch buffer)",
|
|
"QalcAttach": "Evaluate the current buffer's lines with qalc",
|
|
"QalcYank": "Yank the qalc result of the current line (unnamed register unless one is given)",
|
|
"Sidekick": "Sidekick: nes {apply|jump|toggle|…}, cli {toggle|select|send|prompt|…}",
|
|
"TSContext": "Treesitter context: enable, disable or toggle the sticky header",
|
|
"UndotreeFocus": "Focus the undotree panel",
|
|
"UndotreeHide": "Close the undotree panel",
|
|
"UndotreePersistUndo": "Turn on persistent undo for this file (no-op here: 'undofile' is already on)",
|
|
"UndotreeShow": "Open the undotree panel",
|
|
"UndotreeToggle": "Toggle the undotree panel (Space u u)",
|
|
"WakaTimeApiKey": "Set the WakaTime API key",
|
|
"WakaTimeCliLocation": "Show the wakatime-cli path",
|
|
"WakaTimeCliVersion": "Show the wakatime-cli version",
|
|
"WakaTimeDebugDisable": "Turn WakaTime debug logging off",
|
|
"WakaTimeDebugEnable": "Turn WakaTime debug logging on",
|
|
"WakaTimeFileExpert": "Show who has spent the most time on this file",
|
|
"WakaTimeScreenRedrawDisable": "Never redraw the screen after sending heartbeats",
|
|
"WakaTimeScreenRedrawEnable": "Always redraw the screen after sending heartbeats",
|
|
"WakaTimeScreenRedrawEnableAuto": "Redraw the screen after heartbeats only when needed",
|
|
"WakaTimeStatusBarDisable": "Hide WakaTime's status bar text",
|
|
"WakaTimeStatusBarEnable": "Show WakaTime's status bar text",
|
|
"WakaTimeToday": "Show today's coding time",
|
|
"WhichKey": "Show the which-key popup: :WhichKey [mode] [keys]"
|
|
},
|
|
"notes": [
|
|
{"title": "Plugin keys that change stock behaviour", "kind": "warn", "lead": "Verified in plugin source and, where marked, by running the real config headless.", "rows": [["<kbd>Enter</kbd> in vault notes", "obsidian.nvim's smart action (buffer-local) shadows the global Leap <kbd>Enter</kbd> and turns plain lines into checkboxes."], ["<kbd>Enter</kbd> in git log pickers", "Snacks confirms with <code>git checkout</code>: detached HEAD (<kbd>Space g l</kbd>) or overwriting the file (<kbd>Space g f</kbd>, <kbd>Space g L</kbd>)."], ["Dashboard <kbd>s</kbd>", "Missing: Snacks only detects persistence.nvim under lazy.nvim, so there is no Restore Session item."]], "keys": ["<CR>"]}
|
|
]
|
|
}
|