35 lines
873 B
Lua
35 lines
873 B
Lua
-- 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", "<leader>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-BS>", "<C-W>") -- C-Backscpace for whole words
|
|
|
|
-- Open Lazygit
|
|
Keymap("n", "<leader>l", function()
|
|
Snacks.lazygit.open()
|
|
end)
|
|
|
|
Keymap("n", "<leader>d", "<cmd>lua vim.diagnostic.open_float()<CR>") -- Diagnostics for Linter
|