-- Keymap function. local mapkey = Utils.mapkey -- Map the leader key. vim.g.mapleader = ' ' -- Pickers mapkey("n", "f", "Open file picker", ":lua Snacks.picker.files()") mapkey("n", "l", "Open recent file picker", ":lua Snacks.picker.recent()") mapkey("n", "y", "Open clipboard history picker", ":lua Snacks.picker.cliphist()") mapkey("n", "/", "Open live grep picker", ":lua Snacks.picker.grep()") mapkey("n", "\\", "Open command palette", ":lua Snacks.picker.commands()") mapkey("n", "?", "Open help picker", ":lua Snacks.picker.help()") mapkey("n", "p", "Open picker picker", ":lua Snacks.picker.pickers()") mapkey("n", "'", "Open last picker", ":lua Snacks.picker.resume()") mapkey("n", "", "Open smart picker", ":lua Snacks.picker.smart()") mapkey("n", "z", "Open zoxide picker", ":lua Snacks.picker.zoxide()") mapkey("n", "R", "Open treesitter picker", ":Namu treesitter") mapkey("n", "k", "Open colorscheme picker", ":Namu colorscheme") -- Dropbar mapkey("n", "j", "Open dropdown", ":lua require('dropbar.api').pick()") -- Tabs mapkey("n", "t", "Manage tabs", "") mapkey("n", "to", "Open new tab", ":tabnew") mapkey("n", "tc", "Close tab", ":tabclose") mapkey("n", "tt", "Go to next tab", ":tabnext") mapkey("n", "tT", "Go to previous tab", ":tabprev") -- Buffers mapkey("n", "b", "Manage buffers", "") mapkey("n", "bb", "Go to next buffer", ":bn") mapkey("n", "bB", "Go to previous buffer", ":bp") mapkey("n", "bc", "Delete current buffer", ":bd") mapkey("n", "bp", "Open buffer picker", ":lua Snacks.picker.buffers()") mapkey("n", "bg", "Open buffer live grep picker", ":lua Snacks.picker.grep_buffers()") -- Windows mapkey("n", "w", "Manage windows", "") mapkey("n", "S", "Open new horizontally", ":new") mapkey("n", "wS", "Open new horizontally", ":new") mapkey("n", "V", "Open new vertically", ":vnew") mapkey("n", "wV", "Open new vertically", ":vnew") -- Sessions mapkey("n", "m", "Manage sessions", "") mapkey("n", "mm", "Open session picker", ":Autosession search") mapkey("n", "md", "Delete a session", ":Autosession delete") -- Terminals mapkey("n", "c", "Manage terminals", "") mapkey("n", "cc", "Toggle terminal", ":lua Snacks.terminal.toggle()") mapkey("n", "co", "Open new terminal", ":lua Snacks.terminal.open()") -- Git mapkey("n", "g", "Manage git", "") mapkey("n", "gg", "Open lazygit", ":lua Snacks.lazygit()") mapkey("n", "ga", "Add the current file", ":Git add %") mapkey("n", "gs", "Open git status picker", ":lua Snacks.picker.git_status()") -- Other leader keys mapkey("n", "e", "Open file manager", ":lua MiniFiles.open()") -- QOL Keys mapkey("t", "", "Exit terminal insert mode", "") vim.keymap.set("c", "", function() if vim.fn.pumvisible() == 1 then return '' end return '' end, { expr = true }) -- Make enter complete command. mapkey("n", "", "Clear highlights", ":noh") -- Make esc clear highlights -- Newline in normal mode. mapkey('n', '', "Add newline below", 'm`o``') mapkey('n', '', "Add newline above", 'm`O``') -- Really delete mapkey({"n", "v"}, "d", "Really delete", [["_d]]) mapkey({"n", "v"}, "x", "Really delete character", [["_x]]) -- Visual Movement Keys. mapkey({"n", "v"}, "j", "Go down visually", "gj") mapkey({"n", "v"}, "k", "Go up visually", "gk") -- Exit neovim mapkey("n", "q", "Save and exit neovim", function() vim.cmd("wa!") vim.cmd("qa!") end) mapkey("n", "Q", "Exit neovim", function() vim.cmd("qa!") end) -- Dimming mapkey("n", "u", "Toggle scope dimming", function() if Snacks.dim.enabled then Snacks.dim.disable() else Snacks.dim.enable() end end)