-- Keymap function function Keymap(mode, key, binding, opts) local options = { noremap = true, silent = true } if opts then options = vim.tbl_extend("force", options, opts) end vim.keymap.set(mode, key, binding, options) end Keymap("n", "q:", ":") -- remove nonsense command Keymap("n", "bd", function() -- delete buffer vim.cmd("bd") vim.cmd("echo 'Buffer deleted'") end) for _, bind in ipairs({ "i", "a", "A" }) do -- Pass { expr = true } as the fourth argument Keymap("n", bind, function() if vim.fn.getline("."):match("^%s*$") then return [["_cc]] else return bind end end, { expr = true }) end Keymap("i", "", "") -- C-Backscpace for whole words Keymap("n", "d", "lua vim.diagnostic.open_float()") -- Diagnostics for Linter Keymap("n", "gd", "lua vim.lsp.buf.definition()") -- Diagnostics for Linter -- Flash keymaps Keymap("n", "ss", function() require("flash").jump() end) Keymap("n", "S", function() require("flash").treesitter() end) Keymap("n", "r", function() require("flash").remote() end) Keymap("n", "R", function() require("flash").treesitter_search() end) -- Mini Session Keybinds Keymap("n", "qj", function() -- quit and save session local require("mini.sessions").write(".session") vim.cmd("wqa") end) Keymap("n", "qd", function() -- quit and delete session require("mini.sessions").delete(".session") vim.cmd("wqa") end) -- Telescope local builtin = require("telescope.builtin") Keymap("n", "ff", function() builtin.find_files({ hidden = true }) end) Keymap("n", "fn", function() local full_path = vim.api.nvim_buf_get_name(0) local dir = vim.fn.fnamemodify(full_path, ":h") require("telescope").extensions.file_browser.file_browser({ path = dir, }) end) Keymap("n", "fs", function() -- select sessions MiniSessions.select() end) Keymap("n", "fd", function() -- select sessions MiniSessions.select("delete") end) Keymap("n", "fg", function() builtin.live_grep({ hidden = true }) end) Keymap("n", "fb", function() builtin.buffers({ cwd = vim.fn.expand("%:p:h") }) -- buffers don’t need cwd, but harmless end)