feat: improve keybinds for snacks

This commit is contained in:
2026-07-17 08:35:01 +02:00
parent a7caceffb9
commit 78b6ac9edf
3 changed files with 292 additions and 272 deletions
-4
View File
@@ -60,10 +60,6 @@ keymap.set("n", "<leader><leader>e", ":vertical resize 40<CR>", opts("Reset sizi
-- nohlsearch
keymap.set("n", "<leader>h", ":nohlsearch<CR>", opts("remove search highlighting"))
-- run file
keymap.set("n", "<leader>r", ":!%:p<CR>", opts("run current file"))
keymap.set("n", "<leader><leader>r", ":!%:p", opts("run current file with arguments"))
-- chmod +x
keymap.set("n", "<leader><leader>x", ":!chmod +x %:p<CR>", opts("make current file executable"))
+290 -266
View File
@@ -1,268 +1,292 @@
return {
-- Git
{
"<leader><leader>gl",
function()
Snacks.lazygit()
end,
desc = "Open LazyGit",
mode = "n",
},
{
"<leader><leader>gb",
function()
Snacks.git.blame_line()
end,
desc = "Open Git Blame for this line",
mode = "n",
},
-- Colours
{
"<leader>fcs",
function()
Snacks.picker.colorschemes()
end,
desc = "Show color schemes",
mode = "n",
},
{
"<leader>fco",
function()
Snacks.picker.highlights({ pattern = "hl_group:^Snacks" })
end,
desc = "Show Snacks highlights",
mode = "n",
},
{
"<leader>fca",
function()
Snacks.picker.highlights()
end,
desc = "Show highlight groups",
mode = "n",
},
{
"<leader>fci",
function()
Snacks.picker.icons()
end,
desc = "Show icons",
mode = "n",
},
-- Terminal
{
"<leader>t",
function()
Snacks.terminal()
end,
desc = "Open terminal",
},
-- Tree
{
"<leader>E",
function()
Snacks.explorer()
end,
desc = "Open File Tree",
mode = "n",
},
-- Pickers
{
"<leader>ff",
function()
Snacks.picker.files()
end,
desc = "Find file",
mode = "n",
},
{
"<leader>fg",
function()
Snacks.picker.grep()
end,
desc = "Find file content using grep",
mode = "n",
},
{
"<leader>fb",
function()
Snacks.picker.buffers()
end,
desc = "Show all buffers",
mode = "n",
},
{
"<leader>fch",
function()
Snacks.picker.command_history()
end,
desc = "Show command history",
mode = "n",
},
{
"<leader>fd",
function()
Snacks.picker.diagnostics()
end,
desc = "Show diagnostics",
mode = "n",
},
{
"<leader>fm",
function()
Snacks.picker.git_diff()
end,
desc = "Show uncommitted diffs",
mode = "n",
},
{
"<leader>fh",
function()
Snacks.picker.help()
end,
desc = "Show nvim help pages",
mode = "n",
},
{
"<leader>fj",
function()
Snacks.picker.jumps()
end,
desc = "Show available jumps",
mode = "n",
},
{
"<leader>fk",
function()
Snacks.picker.keymaps()
end,
desc = "Show keymaps",
mode = "n",
},
{
"<leader>flc",
function()
Snacks.picker.lsp_config()
end,
desc = "Show LSP configs",
mode = "n",
},
{
"gd",
function()
Snacks.picker.lsp_definitions()
end,
desc = "Goto definitions",
mode = "n",
},
{
"gi",
function()
Snacks.picker.lsp_implementations()
end,
desc = "Goto implementations",
mode = "n",
},
{
"gR",
function()
Snacks.picker.lsp_references()
end,
desc = "Goto references",
mode = "n",
},
{
"gD",
function()
Snacks.picker.lsp_declarations()
end,
desc = "Goto declaration",
mode = "n",
},
{
"gy",
function()
Snacks.picker.lsp_type_definitions()
end,
desc = "Goto T[y]pe Definition",
},
{
"gai",
function()
Snacks.picker.lsp_incoming_calls()
end,
desc = "C[a]lls Incoming",
},
{
"gao",
function()
Snacks.picker.lsp_outgoing_calls()
end,
desc = "C[a]lls Outgoing",
},
{
"gs",
function()
Snacks.picker.lsp_symbols()
end,
desc = "Show LSP symbols",
mode = "n",
},
{
"<leader>fn",
function()
Snacks.picker.noice()
end,
desc = "Show notifications",
mode = "n",
},
{
"<leader>fp",
function()
Snacks.picker.projects()
end,
desc = "Show recent projects",
mode = "n",
},
{
"<leader>fr",
function()
Snacks.picker.recent()
end,
desc = "Show recent files",
mode = "n",
},
{
"<leader>fs",
function()
Snacks.picker.spelling()
end,
desc = "Show spelling suggestions",
mode = "n",
},
{
"z=",
function()
Snacks.picker.spelling()
end,
desc = "Show spelling suggestions",
mode = "n",
},
{
"<leader>fo",
function()
Snacks.picker.treesitter()
end,
desc = "Show treesitter details",
mode = "n",
},
-- Close buffer
{
"<C-x>",
function()
Snacks.bufdelete()
end,
desc = "Close buffer",
mode = "n",
},
-- Git
{
"<leader><leader>gl",
function()
Snacks.lazygit()
end,
desc = "Open LazyGit",
mode = "n",
},
{
"<leader><leader>gb",
function()
Snacks.git.blame_line()
end,
desc = "Open Git Blame for this line",
mode = "n",
},
-- Colours
{
"<leader>fcs",
function()
Snacks.picker.colorschemes()
end,
desc = "Show color schemes",
mode = "n",
},
{
"<leader>fco",
function()
Snacks.picker.highlights({ pattern = "hl_group:^Snacks" })
end,
desc = "Show Snacks highlights",
mode = "n",
},
{
"<leader>fca",
function()
Snacks.picker.highlights()
end,
desc = "Show highlight groups",
mode = "n",
},
{
"<leader>fci",
function()
Snacks.picker.icons()
end,
desc = "Show icons",
mode = "n",
},
-- Terminal
{
"<leader>t",
function()
Snacks.terminal()
end,
desc = "Open terminal",
},
-- Tree
{
"<leader>e",
function()
Snacks.explorer({ layout = { preset = "select", layout = { max_height = 200 } } })
end,
desc = "Open File Tree",
mode = "n",
},
-- Pickers
{
"<leader>ff",
function()
Snacks.picker.smart()
end,
desc = "Find files (smart)",
mode = "n",
},
{
"<leader>fF",
function()
Snacks.picker.files()
end,
desc = "Find files (default)",
mode = "n",
},
{
"<leader>fg",
function()
Snacks.picker.grep()
end,
desc = "Find file content using grep",
mode = "n",
},
{
"<leader>fb",
function()
Snacks.picker.buffers()
end,
desc = "Show all buffers",
mode = "n",
},
{
"<leader>fch",
function()
Snacks.picker.command_history()
end,
desc = "Show command history",
mode = "n",
},
{
"<leader>fd",
function()
Snacks.picker.diagnostics()
end,
desc = "Show diagnostics",
mode = "n",
},
{
"<leader>fm",
function()
Snacks.picker.git_diff()
end,
desc = "Show uncommitted diffs",
mode = "n",
},
{
"<leader>fh",
function()
Snacks.picker.help()
end,
desc = "Show nvim help pages",
mode = "n",
},
{
"<leader>fj",
function()
Snacks.picker.jumps()
end,
desc = "Show available jumps",
mode = "n",
},
{
"<leader>fk",
function()
Snacks.picker.keymaps()
end,
desc = "Show keymaps",
mode = "n",
},
{
"<leader>flc",
function()
Snacks.picker.lsp_config()
end,
desc = "Show LSP configs",
mode = "n",
},
{
"gd",
function()
Snacks.picker.lsp_definitions()
end,
desc = "Goto definitions",
mode = "n",
},
{
"gi",
function()
Snacks.picker.lsp_implementations()
end,
desc = "Goto implementations",
mode = "n",
},
{
"gr",
function()
Snacks.picker.lsp_references()
end,
desc = "Goto references",
mode = "n",
},
{
"gD",
function()
Snacks.picker.lsp_declarations()
end,
desc = "Goto declaration",
mode = "n",
},
{
"gy",
function()
Snacks.picker.lsp_type_definitions()
end,
desc = "Goto T[y]pe Definition",
},
{
"gai",
function()
Snacks.picker.lsp_incoming_calls()
end,
desc = "C[a]lls Incoming",
},
{
"gao",
function()
Snacks.picker.lsp_outgoing_calls()
end,
desc = "C[a]lls Outgoing",
},
{
"gs",
function()
Snacks.picker.lsp_symbols()
end,
desc = "Show LSP symbols",
mode = "n",
},
{
"<leader>fn",
function()
Snacks.picker.noice()
end,
desc = "Show notifications",
mode = "n",
},
{
"<leader>fp",
function()
Snacks.picker.projects()
end,
desc = "Show recent projects",
mode = "n",
},
{
"<leader>fr",
function()
Snacks.picker.recent()
end,
desc = "Show recent files",
mode = "n",
},
{
"<leader>fs",
function()
Snacks.picker.spelling()
end,
desc = "Show spelling suggestions",
mode = "n",
},
{
"z=",
function()
Snacks.picker.spelling()
end,
desc = "Show spelling suggestions",
mode = "n",
},
{
"<leader>fo",
function()
Snacks.picker.treesitter()
end,
desc = "Show treesitter details",
mode = "n",
},
{
"[[",
function()
Snacks.words.jump(-vim.v.count1)
end,
desc = "Jump to previous reference",
mode = "n",
},
{
"]]",
function()
Snacks.words.jump(vim.v.count1)
end,
desc = "Jump to next reference",
mode = "n",
},
-- Close buffer
{
"<C-x>",
function()
Snacks.bufdelete()
end,
desc = "Close buffer",
mode = "n",
},
}
+2 -2
View File
@@ -2,7 +2,7 @@ local utils = require("utils")
local opts = utils.opts
local keymap = vim.keymap
keymap.set({ "n" }, "<leader>e", function()
keymap.set({ "n" }, "<leader>E", function()
local width = math.ceil(math.min(150, vim.o.columns * 0.8))
local height = math.ceil(math.min(35, vim.o.lines * 0.8))
local row = math.ceil(vim.o.lines - height) * 0.5 - 1
@@ -25,4 +25,4 @@ end, opts("Open file browser"))
keymap.set({ "n" }, "<leader>u", function()
vim.api.nvim_command(":packadd nvim.undotree")
vim.api.nvim_command(":Undotree")
end, opts("Open file browser"))
end, opts("Open undotree"))