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 -- nohlsearch
keymap.set("n", "<leader>h", ":nohlsearch<CR>", opts("remove search highlighting")) 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 -- chmod +x
keymap.set("n", "<leader><leader>x", ":!chmod +x %:p<CR>", opts("make current file executable")) keymap.set("n", "<leader><leader>x", ":!chmod +x %:p<CR>", opts("make current file executable"))
+290 -266
View File
@@ -1,268 +1,292 @@
return { return {
-- Git -- Git
{ {
"<leader><leader>gl", "<leader><leader>gl",
function() function()
Snacks.lazygit() Snacks.lazygit()
end, end,
desc = "Open LazyGit", desc = "Open LazyGit",
mode = "n", mode = "n",
}, },
{ {
"<leader><leader>gb", "<leader><leader>gb",
function() function()
Snacks.git.blame_line() Snacks.git.blame_line()
end, end,
desc = "Open Git Blame for this line", desc = "Open Git Blame for this line",
mode = "n", mode = "n",
}, },
-- Colours -- Colours
{ {
"<leader>fcs", "<leader>fcs",
function() function()
Snacks.picker.colorschemes() Snacks.picker.colorschemes()
end, end,
desc = "Show color schemes", desc = "Show color schemes",
mode = "n", mode = "n",
}, },
{ {
"<leader>fco", "<leader>fco",
function() function()
Snacks.picker.highlights({ pattern = "hl_group:^Snacks" }) Snacks.picker.highlights({ pattern = "hl_group:^Snacks" })
end, end,
desc = "Show Snacks highlights", desc = "Show Snacks highlights",
mode = "n", mode = "n",
}, },
{ {
"<leader>fca", "<leader>fca",
function() function()
Snacks.picker.highlights() Snacks.picker.highlights()
end, end,
desc = "Show highlight groups", desc = "Show highlight groups",
mode = "n", mode = "n",
}, },
{ {
"<leader>fci", "<leader>fci",
function() function()
Snacks.picker.icons() Snacks.picker.icons()
end, end,
desc = "Show icons", desc = "Show icons",
mode = "n", mode = "n",
}, },
-- Terminal -- Terminal
{ {
"<leader>t", "<leader>t",
function() function()
Snacks.terminal() Snacks.terminal()
end, end,
desc = "Open terminal", desc = "Open terminal",
}, },
-- Tree -- Tree
{ {
"<leader>E", "<leader>e",
function() function()
Snacks.explorer() Snacks.explorer({ layout = { preset = "select", layout = { max_height = 200 } } })
end, end,
desc = "Open File Tree", desc = "Open File Tree",
mode = "n", mode = "n",
}, },
-- Pickers -- Pickers
{ {
"<leader>ff", "<leader>ff",
function() function()
Snacks.picker.files() Snacks.picker.smart()
end, end,
desc = "Find file", desc = "Find files (smart)",
mode = "n", mode = "n",
}, },
{ {
"<leader>fg", "<leader>fF",
function() function()
Snacks.picker.grep() Snacks.picker.files()
end, end,
desc = "Find file content using grep", desc = "Find files (default)",
mode = "n", mode = "n",
}, },
{ {
"<leader>fb", "<leader>fg",
function() function()
Snacks.picker.buffers() Snacks.picker.grep()
end, end,
desc = "Show all buffers", desc = "Find file content using grep",
mode = "n", mode = "n",
}, },
{ {
"<leader>fch", "<leader>fb",
function() function()
Snacks.picker.command_history() Snacks.picker.buffers()
end, end,
desc = "Show command history", desc = "Show all buffers",
mode = "n", mode = "n",
}, },
{ {
"<leader>fd", "<leader>fch",
function() function()
Snacks.picker.diagnostics() Snacks.picker.command_history()
end, end,
desc = "Show diagnostics", desc = "Show command history",
mode = "n", mode = "n",
}, },
{ {
"<leader>fm", "<leader>fd",
function() function()
Snacks.picker.git_diff() Snacks.picker.diagnostics()
end, end,
desc = "Show uncommitted diffs", desc = "Show diagnostics",
mode = "n", mode = "n",
}, },
{ {
"<leader>fh", "<leader>fm",
function() function()
Snacks.picker.help() Snacks.picker.git_diff()
end, end,
desc = "Show nvim help pages", desc = "Show uncommitted diffs",
mode = "n", mode = "n",
}, },
{ {
"<leader>fj", "<leader>fh",
function() function()
Snacks.picker.jumps() Snacks.picker.help()
end, end,
desc = "Show available jumps", desc = "Show nvim help pages",
mode = "n", mode = "n",
}, },
{ {
"<leader>fk", "<leader>fj",
function() function()
Snacks.picker.keymaps() Snacks.picker.jumps()
end, end,
desc = "Show keymaps", desc = "Show available jumps",
mode = "n", mode = "n",
}, },
{ {
"<leader>flc", "<leader>fk",
function() function()
Snacks.picker.lsp_config() Snacks.picker.keymaps()
end, end,
desc = "Show LSP configs", desc = "Show keymaps",
mode = "n", mode = "n",
}, },
{ {
"gd", "<leader>flc",
function() function()
Snacks.picker.lsp_definitions() Snacks.picker.lsp_config()
end, end,
desc = "Goto definitions", desc = "Show LSP configs",
mode = "n", mode = "n",
}, },
{ {
"gi", "gd",
function() function()
Snacks.picker.lsp_implementations() Snacks.picker.lsp_definitions()
end, end,
desc = "Goto implementations", desc = "Goto definitions",
mode = "n", mode = "n",
}, },
{ {
"gR", "gi",
function() function()
Snacks.picker.lsp_references() Snacks.picker.lsp_implementations()
end, end,
desc = "Goto references", desc = "Goto implementations",
mode = "n", mode = "n",
}, },
{ {
"gD", "gr",
function() function()
Snacks.picker.lsp_declarations() Snacks.picker.lsp_references()
end, end,
desc = "Goto declaration", desc = "Goto references",
mode = "n", mode = "n",
}, },
{ {
"gy", "gD",
function() function()
Snacks.picker.lsp_type_definitions() Snacks.picker.lsp_declarations()
end, end,
desc = "Goto T[y]pe Definition", desc = "Goto declaration",
}, mode = "n",
{ },
"gai", {
function() "gy",
Snacks.picker.lsp_incoming_calls() function()
end, Snacks.picker.lsp_type_definitions()
desc = "C[a]lls Incoming", end,
}, desc = "Goto T[y]pe Definition",
{ },
"gao", {
function() "gai",
Snacks.picker.lsp_outgoing_calls() function()
end, Snacks.picker.lsp_incoming_calls()
desc = "C[a]lls Outgoing", end,
}, desc = "C[a]lls Incoming",
{ },
"gs", {
function() "gao",
Snacks.picker.lsp_symbols() function()
end, Snacks.picker.lsp_outgoing_calls()
desc = "Show LSP symbols", end,
mode = "n", desc = "C[a]lls Outgoing",
}, },
{ {
"<leader>fn", "gs",
function() function()
Snacks.picker.noice() Snacks.picker.lsp_symbols()
end, end,
desc = "Show notifications", desc = "Show LSP symbols",
mode = "n", mode = "n",
}, },
{ {
"<leader>fp", "<leader>fn",
function() function()
Snacks.picker.projects() Snacks.picker.noice()
end, end,
desc = "Show recent projects", desc = "Show notifications",
mode = "n", mode = "n",
}, },
{ {
"<leader>fr", "<leader>fp",
function() function()
Snacks.picker.recent() Snacks.picker.projects()
end, end,
desc = "Show recent files", desc = "Show recent projects",
mode = "n", mode = "n",
}, },
{ {
"<leader>fs", "<leader>fr",
function() function()
Snacks.picker.spelling() Snacks.picker.recent()
end, end,
desc = "Show spelling suggestions", desc = "Show recent files",
mode = "n", mode = "n",
}, },
{ {
"z=", "<leader>fs",
function() function()
Snacks.picker.spelling() Snacks.picker.spelling()
end, end,
desc = "Show spelling suggestions", desc = "Show spelling suggestions",
mode = "n", mode = "n",
}, },
{ {
"<leader>fo", "z=",
function() function()
Snacks.picker.treesitter() Snacks.picker.spelling()
end, end,
desc = "Show treesitter details", desc = "Show spelling suggestions",
mode = "n", mode = "n",
}, },
-- Close buffer {
{ "<leader>fo",
"<C-x>", function()
function() Snacks.picker.treesitter()
Snacks.bufdelete() end,
end, desc = "Show treesitter details",
desc = "Close buffer", mode = "n",
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 opts = utils.opts
local keymap = vim.keymap 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 width = math.ceil(math.min(150, vim.o.columns * 0.8))
local height = math.ceil(math.min(35, vim.o.lines * 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 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() keymap.set({ "n" }, "<leader>u", function()
vim.api.nvim_command(":packadd nvim.undotree") vim.api.nvim_command(":packadd nvim.undotree")
vim.api.nvim_command(":Undotree") vim.api.nvim_command(":Undotree")
end, opts("Open file browser")) end, opts("Open undotree"))