{ "entries": [ {"k": "", "m": ["i"], "d": "Insert the full path of the file under the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "m": ["n", "i"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "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": "", "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": "", "m": ["n", "i"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "#", "m": ["i"], "d": "Insert the alternate file name (#) into the search", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": ["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": "", "m": ["n", "i"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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 lua/plugins.lua: runs flash.jump with pattern ^ restricted to the list window, then moves the cursor to the picked row (it does not confirm).", "e": 1, "sl": "flash"}, {"k": "", "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": ["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 lua/plugins.lua calling sidekick.cli.picker.snacks.send: closes the picker and sends file/position references to the running AI CLI tool."}, {"k": "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": "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": "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": "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 lua/plugins.lua: runs flash.jump with pattern ^ 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 s prefix inside the picker.", "sl": "flash"}, {"k": "", "m": ["n", "i"], "d": "Debug-inspect the item under the cursor (Snacks.debug)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Scroll the result list up half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Show / hide the preview window", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Open the item in a new tab", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "m": ["i"], "d": "Insert the WORD under the cursor (in the original buffer)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["i"], "d": "Insert the file path under the cursor ()", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Recall the next search from picker history", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Recall the previous search from picker history", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "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 Ctrl-g prints the item path instead."}, {"k": "", "m": ["i"], "d": "Delete the word before the cursor in the search input", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "Maps <C-w> to <C-S-w>, which works in the prompt buffer."}, {"k": "", "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": "", "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": ["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": "", "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 Esc just leaves insert mode in the search box, the second closes the picker (or use q / insert-mode Ctrl-c)."}, {"k": "", "m": ["n", "i"], "d": "Scroll the result list down half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "m": ["n", "i"], "d": "Pick a window with labels, then open the item there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "n": "{ \"pick_win\", \"jump\" }: the picker hides, every window gets a letter label; type it to open the item in that window."}, {"k": "%", "m": ["i"], "d": "Insert the current file name (%)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "m": ["n", "i"], "d": "Open the item in a horizontal split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "split"}, {"k": "", "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": ["n", "i"], "d": "Maximize / restore the picker layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "m": ["n", "i"], "d": "Open the item in a vertical split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input", "sl": "vsplit"}, {"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": "", "m": ["i"], "d": "Insert the current line of the original buffer", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · input"}, {"k": "", "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": "", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "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": "", "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": "", "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": "", "m": ["n"], "d": "Open the item in a vertical split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "vsplit"}, {"k": "", "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": "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": "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": "", "m": ["n"], "d": "Scroll the preview window up", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "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": ["n"], "d": "Debug-inspect the item under the cursor (Snacks.debug)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "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": "", "m": ["n"], "d": "Scroll the result list up half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Scroll the result list down half a page", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Print the path of the item under the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Scroll the preview window down", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "m": ["n"], "d": "Pick a window with labels, then open the item there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "n": "{ \"pick_win\", \"jump\" }: the picker hides, every window gets a letter label; type it to open the item in that window."}, {"k": "", "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": ["n"], "d": "Maximize / restore the picker layout", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list"}, {"k": "", "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": "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": "", "m": ["n"], "d": "Open the item in a horizontal split", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · list", "sl": "split"}, {"k": "", "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": ["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": "", "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": ["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": "", "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": "", "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": ["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": ["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": "", "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 , / fb."}, {"k": "dd", "m": ["n"], "d": "Delete the buffer (list window)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · buffers", "n": "Opened with , / fb."}, {"k": "", "m": ["n", "i"], "d": "Stage / unstage the file (replaces multi-select here)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_status", "n": "Opened with gs. Runs git add or git restore --staged."}, {"k": "", "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 gs. Runs git restore; irreversible for unstaged edits."}, {"k": "", "m": ["n", "i"], "d": "Stage / unstage the hunk under the cursor", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_diff", "n": "Opened with gd. Uses git apply --cached (or --reverse)."}, {"k": "", "m": ["n", "i"], "d": "Discard the hunk after a confirm prompt", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_diff", "n": "Opened with gd."}, {"k": "", "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 gb."}, {"k": "", "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 gb."}, {"k": "", "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 gb."}, {"k": "", "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 gl. The source's confirm is git_checkout, so Enter on a commit really runs git checkout <sha>. Use Esc to just browse."}, {"k": "", "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 gf (file history) or gL (line history). Confirm is git_checkout with the file attached: git checkout <sha> -- <file> replaces the working copy."}, {"k": "", "m": ["n", "i"], "d": "Apply the stash (git stash apply)", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · git_stash", "n": "Opened with gS."}, {"k": "", "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 fp. 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": "", "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 fp."}, {"k": "", "m": ["n", "i"], "d": "tcd to the project and find files there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with fp."}, {"k": "", "m": ["n", "i"], "d": "tcd to the project and grep there", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with fp."}, {"k": "", "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 fp."}, {"k": "", "m": ["n", "i"], "d": "Just tcd to the project (tab-local cwd)", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · projects", "n": "Opened with fp."}, {"k": "", "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 fp."}, {"k": "", "m": ["n", "i"], "d": "Restore the buffer to the chosen undo state", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · undo", "n": "Opened with su."}, {"k": "", "m": ["n", "i"], "d": "Yank the lines added in that undo state", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · undo", "n": "Opened with su."}, {"k": "", "m": ["n", "i"], "d": "Yank the lines removed in that undo state", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · undo", "n": "Opened with su."}, {"k": "", "m": ["n", "i"], "d": "Delete the mark under the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · marks", "n": "Opened with sm."}, {"k": "", "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 s\". Uses v:register, which is + with clipboard=unnamedplus."}, {"k": "", "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 : / sc."}, {"k": "", "m": ["n", "i"], "d": "Put the command on the command line", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · commands", "n": "Opened with sC."}, {"k": "", "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 s/."}, {"k": "", "m": ["n", "i"], "d": "Insert the icon at the cursor", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · icons", "n": "Opened with si."}, {"k": "", "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 uC."}, {"k": "", "m": ["n", "i"], "d": "Open the help page; vertical, tab", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · help", "n": "Opened with sh."}, {"k": "", "m": ["n", "i"], "d": "Close the picker and run the chosen keymap", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · keymaps", "n": "Opened with sk. Feeds the mapping's lhs with nvim_input, so it runs as if typed."}, {"k": "", "m": ["n", "i"], "d": "Toggle including global keymaps", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · keymaps", "n": "Opened with sk."}, {"k": "", "m": ["n", "i"], "d": "Toggle including buffer-local keymaps", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · keymaps", "n": "Opened with sk."}, {"k": "", "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 gi / gI / gp / gP."}, {"k": "", "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 gi / gI / gp / gP."}, {"k": "", "m": ["n", "i"], "d": "Yank the issue / PR URL", "s": "snacks", "cat": "Git", "ctx": "Snacks picker · gh_issue / gh_pr", "n": "Opened with gi / gI / gp / gP."}, {"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 gi / gI / gp / gP."}, {"k": "", "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 gt / gT. This snacks-tea version registers its picker config only when Snacks.picker.config.defaults exists, which this snacks lacks, so it falls back to a bare picker: Enter is the default jump and the Alt-b / Ctrl-y / y keys are not mapped (verified headless)."}, {"k": "", "m": ["n", "i"], "d": "Open the scratch buffer", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · scratch", "n": "Opened with S."}, {"k": "", "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 S. Runs Snacks.scratch.open(), the same buffer . toggles; it does not make an extra one."}, {"k": "", "m": ["n", "i"], "d": "Delete the scratch file", "s": "snacks", "cat": "Find & pick", "ctx": "Snacks picker · scratch", "n": "Opened with S."}, {"k": "", "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 gd gr gI gy gai gao, …. auto_confirm is on for lsp_definitions, references, implementations, type/declarations and call hierarchy."}, {"k": "", "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 :Obsidian quick_switch / search pickers (snacks backend). Ctrl-b here replaces snacks' preview scroll-up."}, {"k": "", "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 :Obsidian quick_switch / search pickers (snacks backend). Ctrl-b here replaces snacks' preview scroll-up."}, {"k": "", "m": ["n", "i"], "d": "Bookmark the chosen note", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian notes", "n": "In :Obsidian quick_switch / search pickers (snacks backend). Ctrl-b here replaces snacks' preview scroll-up."}, {"k": "", "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 :Obsidian tags picker."}, {"k": "", "m": ["n", "i"], "d": "Insert the chosen tag at the cursor", "s": "obsidian.nvim", "cat": "Notes", "ctx": "Snacks picker · Obsidian tags", "n": "In the :Obsidian tags picker."}, {"k": "", "m": ["n", "i"], "d": "Jump to the bookmark", "s": "haunt", "cat": "Mark & jump", "ctx": "Snacks picker · Haunt bookmarks", "n": "Opened with Space h l (picker = \"snacks\" in lua/plugins.lua)."}, {"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 picker_keys.delete)."}, {"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 picker_keys.edit_annotation)."}, {"k": "", "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 Ctrl-t (open in tab)."}, {"k": "j", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "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": "", "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": "", "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": "", "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": "", "m": ["n"], "d": "Print the path of the item under the cursor", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Scroll the preview window down", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n", "x"], "d": "Toggle selection of the item and move up (multi-select)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "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": "", "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": "", "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": ["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": "", "m": ["n"], "d": "Open the item in a vertical split", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "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": "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": "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": ["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": ["n"], "d": "Debug-inspect the item under the cursor (Snacks.debug)", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Toggle the preview window", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Scroll the result list up half a page", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Scroll the result list down half a page", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "/", "m": ["n"], "d": "Grep inside the directory under the cursor", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "Buffer-local <leader>/, 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": "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": "", "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": "", "m": ["n"], "d": "Open the file, or expand / collapse the directory", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "e": 1}, {"k": "", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "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 v:register, which is + with clipboard=unnamedplus."}, {"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": ["n"], "d": "Cycle focus between the input, preview and list windows", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Open the item in a horizontal split", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "m": ["n"], "d": "Pick a window with labels, then open the item there", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer", "n": "{ \"pick_win\", \"jump\" }: the picker hides, every window gets a letter label; type it to open the item in that window."}, {"k": "", "m": ["n"], "d": "Move to the previous result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "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": "", "m": ["n"], "d": "Move to the next result", "s": "snacks", "cat": "Files", "ctx": "Snacks explorer"}, {"k": "", "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 trash, gio and kioclient 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 q = :bd."}, {"k": "", "m": ["n"], "d": "Run the item under the cursor", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks dashboard", "n": "There is no s (Restore Session) or L (Lazy) item: Snacks detects session plugins only under lazy.nvim, so under vim.pack persistence is not found. Use Space q s / Space q l 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 stdpath('data')/scratch, keyed by name, filetype, count, cwd and git branch, and are written when hidden. {count} Space . opens scratch number {count}."}, {"k": "", "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 (win_by_ft.lua), via Snacks.debug.run."}, {"k": "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; Space Z is the zoom variant (full width, keeps statusline/tabline). Run the same key again, or :close, to restore."}, {"k": "q", "m": ["n"], "d": "Close the notification history window", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks notification history", "n": "Space n opens Snacks.notifier.show_history() (the second of two Space n maps in lua/keymaps.lua, so it wins over the notifications picker)."}, {"k": "", "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 (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "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 (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "m": ["n"], "d": "Cancel the prompt", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "q", "m": ["n"], "d": "Cancel the prompt", "s": "snacks", "cat": "UI & toggles", "ctx": "Snacks input (vim.ui.input prompts)", "n": "Used by rename (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "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 (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "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 (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "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 (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "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 (Space c R), explorer add/rename/copy and any plugin calling vim.ui.input."}, {"k": "", "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 c is checkout and x 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": "", "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 Alt-w cycle, Ctrl-b/Ctrl-f 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 (snacks.gh). snacks-tea's Forgejo diff picker maps the same keys to actions it never defines, so they do nothing there."}, {"k": "", "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 (snacks.gh). snacks-tea's Forgejo diff picker maps the same keys to actions it never defines, so they do nothing there."}, {"k": "", "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 Ctrl-Space always goes to blink in insert mode.", "e": 1, "sl": "complete"}, {"k": "", "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 Ctrl-y (insert the character above) when the menu is closed.", "e": 1, "sl": "accept"}, {"k": "", "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 Ctrl-e (insert the character below) when the menu is closed.", "e": 1, "sl": "dismiss"}, {"k": "", "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 lua/plugins.lua: { \"select_next\", \"show_and_insert\" }. Ctrl-p mirrors it (opens on the last item). Built-in keyword completion is still on Ctrl-x Ctrl-n"}, {"k": "", "m": ["i"], "d": "Select the previous item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Same as Ctrl-n: no fallback to built-in completion."}, {"k": "", "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 Down (move by display line, lua/keymaps.lua)."}, {"k": "", "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 Up (move by display line)."}, {"k": "", "m": ["i"], "d": "Scroll the documentation window down", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to Ctrl-f when no docs window is open."}, {"k": "", "m": ["i"], "d": "Scroll the documentation window up", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to Ctrl-b when no docs window is open."}, {"k": "", "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 lua/plugins.lua: 1) snippet_forward if a snippet is active; 2) sidekick.nes_jump_or_apply() (jump to, then apply, a Copilot next-edit suggestion; suggestions are cleared on insert, so rarely fires here); 3) vim.lsp.inline_completion.get() accepts native LSP ghost text (Copilot); 4) a literal Tab. Tab does not accept the blink menu; use Ctrl-y.", "e": 1, "sl": "tab chain"}, {"k": "", "m": ["i", "s"], "d": "Jump to the previous snippet field", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (insert)", "n": "Falls back to Shift-Tab."}, {"k": "", "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 : (only in the cmdline window)."}, {"k": "", "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": "", "m": ["c"], "d": "Open the completion menu", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)"}, {"k": "", "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 Ctrl-n: next completion match after Tab, otherwise the next (newer) command-line from history."}, {"k": "", "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 Ctrl-p: previous completion match, otherwise the previous (older) command-line from history."}, {"k": "", "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": "", "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": "", "m": ["c"], "d": "Accept the selected item", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)"}, {"k": "", "m": ["c"], "d": "Close the menu and undo the preview", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Falls back to Ctrl-e (cursor to end of line)."}, {"k": "", "m": ["c"], "d": "Hide the menu", "s": "blink.cmp", "cat": "Completion & AI", "ctx": "Completion menu (cmdline)", "n": "Falls back to End."}, {"k": " / / ", "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 n→t mode change. Snacks terminals go n→nt→t, so in testing no blink maps were set and keys reached the shell. If they ever do get installed, Ctrl-n/Ctrl-p/Ctrl-Space 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 copilot via blink-copilot: up to 3 completions, score_offset = 100. Sources order: lsp, path, snippets, buffer, copilot. Accept like any item with Ctrl-y."}, {"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": "vim.lsp.inline_completion.enable() in lua/plugins.lua. Accept with Tab (3rd step of the chain); there is no key to cycle alternatives (vim.lsp.inline_completion.select() is unmapped)."}, {"k": "", "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": "lua/keymaps.lua maps normal Tab to sidekick.nes_jump_or_apply(); with no suggestion it falls back to jump forward. Ctrl-i is mapped separately for terminals that can tell the two apart", "e": 1, "sl": "NES"}, {"k": "", "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 vim.on_key watcher clears suggestions whenever Esc is typed (nes.clear.esc = true). Suggestions refresh on leaving insert mode and on text changes."}, {"k": "", "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 sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "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 sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "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 sidekick/config.lua. This config maps no key to open the CLI; use :Sidekick cli toggle / select. Custom prompts haunt_all and haunt_buffer send Haunt bookmarks."}, {"k": "", "m": ["n", "t"], "d": "Hide the CLI window", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "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 sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "m": ["t"], "d": "Leave terminal mode (normal mode in the CLI)", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "m": ["n"], "d": "Hide the CLI window", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "q", "m": ["n"], "d": "Hide the CLI window", "s": "sidekick", "cat": "Completion & AI", "ctx": "Sidekick AI CLI terminal", "n": "Defaults from sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "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 sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "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 sidekick/config.lua (CLI window opens on the right, 80 cols). No key opens it in this config: use :Sidekick cli toggle."}, {"k": "", "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": "", "m": ["n", "x", "o"], "d": "Close the popup (and cancel the pending keys)", "s": "which-key", "cat": "Help", "ctx": "which-key popup"}, {"k": "", "m": ["n", "x", "o"], "d": "Scroll the popup down", "s": "which-key", "cat": "Help", "ctx": "which-key popup"}, {"k": "", "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 Space, g, z, ] (0 ms for its plugin popups). Groups show with +."}, {"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 registers plugin; the popup appears immediately."}, {"k": "", "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 which-key-trigger registers 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 marks 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 (2z=) Vim's own behaviour runs."}, {"k": "r", "m": ["n"], "d": "Replace: apply the replacement to every match", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r.", "e": 1}, {"k": "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 \\, so e.g. \\ r."}, {"k": "l", "m": ["n"], "d": "Sync the result line under the cursor", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "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 \\, so e.g. \\ r."}, {"k": "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 \\, so e.g. \\ r."}, {"k": "v", "m": ["n"], "d": "Sync all changes in the current file", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "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 \\, so e.g. \\ r."}, {"k": "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 \\, so e.g. \\ r."}, {"k": "q", "m": ["n"], "d": "Send the results to the quickfix list", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "t", "m": ["n"], "d": "Open search history (Enter picks an entry)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "a", "m": ["n"], "d": "Add the current search to history", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "f", "m": ["n"], "d": "Refresh (re-run the search)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "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 \\, so e.g. \\ r."}, {"k": "i", "m": ["n"], "d": "Preview the match location in a float", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "b", "m": ["n"], "d": "Abort the running search / replace", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "c", "m": ["n"], "d": "Close Grug-far", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "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 \\, so e.g. \\ r."}, {"k": "e", "m": ["n"], "d": "Cycle the search engine (ripgrep → astgrep → astgrep-rules)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "x", "m": ["n"], "d": "Cycle the replacement interpreter (default → lua → vimscript)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far", "n": "Local leader is \\, so e.g. \\ r."}, {"k": "", "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 Enter picks the history entry."}, {"k": "", "m": ["n"], "d": "Open the next match location", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"}, {"k": "", "m": ["n"], "d": "Open the previous match location", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"}, {"k": "", "m": ["n"], "d": "Jump to the next input field (Search, Replace, Files filter, Flags, Paths)", "s": "grug-far", "cat": "Search", "ctx": "Grug-far"}, {"k": "", "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": "", "m": ["n"], "d": "Restore the buffer to the undo state under the cursor", "s": "undotree", "cat": "Undo & repeat", "ctx": "Undotree", "n": "Toggle with Space u u. Config: focus jumps into the tree on toggle, 32-col panel, diff panel closed by default (D), help line hidden (? still works), Nerd Font tree glyphs. Persistent undofile 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": "", "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": "", "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": "", "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 ~/Documents/Notebook and ~/Documents/Notes. In order: accept an inlay-hint action; follow the link under the cursor; open the tag picker on a tag; za on a heading if Markdown folding is on; otherwise toggle the line's checkbox (create_new = true, so plain lines become - [ ]; states cycle [ ] [~] [!] [>] [x]). In vault notes this shadows the global Leap Enter.", "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 ~/Documents/Notebook and ~/Documents/Notes."}, {"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 ~/Documents/Notebook and ~/Documents/Notes."}, {"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 ~/Documents/Notebook and ~/Documents/Notes. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of [[ links and # 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 ~/Documents/Notebook and ~/Documents/Notes. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of [[ links and # tags), so the config's LSP keys work on notes."}, {"k": "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 ~/Documents/Notebook and ~/Documents/Notes. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of [[ links and # tags), so the config's LSP keys work on notes."}, {"k": "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 ~/Documents/Notebook and ~/Documents/Notes. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of [[ links and # tags), so the config's LSP keys work on notes."}, {"k": "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 ~/Documents/Notebook and ~/Documents/Notes. obsidian.nvim starts an in-process LSP server for notes (definition, references, rename, code actions, symbols, completion of [[ links and # 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": "legacy_commands = false: only the :Obsidian <sub> form exists. Bare :Obsidian 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": "Space h a annotates (creating the bookmark if needed; empty input cancels), Space h t toggles the annotation text, Space h n/p walk bookmarks, Space h d deletes, Space h l 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": "Space c r types :IncRename <cword> for you; with Noice's inc_rename preset the command line appears as a small popup above the cursor. Edit the name and watch all occurrences update (highlighted Substitute); Enter renames across files, Esc 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": "format_on_save (500 ms, LSP fallback) in lua/plugins.lua; set vim.g.disable_autoformat / vim.b.disable_autoformat 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 h… gitsigns keys); use these commands. The older next_hunk / prev_hunk 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 h… gitsigns keys); use these commands. The older next_hunk / prev_hunk 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": "", "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 (long_message_to_split). : opens a centred command palette popup, / and ? stay at the bottom (bottom_search). Noice defines no other keys; scrolling LSP docs with Ctrl-f/Ctrl-b 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 K/gx."}, {"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": "", "m": ["n"], "d": "Expand the package details / toggle its install log", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"}, {"k": "", "m": ["n"], "d": "Cancel the installation", "s": "mason", "cat": "LSP & diagnostics", "ctx": "Mason"}, {"k": "", "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": "", "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; \"+y instead copies to the clipboard and quits back to Kitty. Only inside a kitty-scrollback.nvim session (opened from a Kitty mapping generated by :KittyScrollbackGenerateKittens)."}, {"k": "y{motion}", "m": ["n"], "d": "Yank {motion} to the system clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"}, {"k": "y", "m": ["x"], "d": "Yank the selection to the system clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"}, {"k": "yy", "m": ["n"], "d": "Yank the line to the clipboard and return to Kitty", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"}, {"k": "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 Space Y default points at an undefined <Plug> map in this plugin version, so it does nothing."}, {"k": "", "m": ["n", "i", "x"], "d": "Execute the paste window text (or selection) in the shell", "s": "kitty-scrollback", "cat": "Terminal", "ctx": "Kitty scrollback"}, {"k": "", "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": "", "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 gx (Normal and Visual, lua/keymaps.lua:358). Handlers: plugin names → GitHub, #123 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; ! makes it a scratch buffer. *.qalc files attach automatically. :QalcYank [reg] yanks the result of the current line (the unnamed register when none is given)."}, {"k": "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. :CBccbox 3. :CBd removes a box, :CBy 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: nes apply|jump|update|clear|enable|disable, cli toggle|show|hide|close|focus|select|send|prompt."}, {"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": "", "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 ([\"<C-k>\"] = false) so digraphs work; signature help shows automatically, or press Neovim's Ctrl-s"} ], "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": [["Enter in vault notes", "obsidian.nvim's smart action (buffer-local) shadows the global Leap Enter and turns plain lines into checkboxes."], ["Enter in git log pickers", "Snacks confirms with git checkout: detached HEAD (Space g l) or overwriting the file (Space g f, Space g L)."], ["Dashboard s", "Missing: Snacks only detects persistence.nvim under lazy.nvim, so there is no Restore Session item."]], "keys": [""]} ] }