home/dot_config/nvim/lua/keymap.lua

32 lines
962 B
Lua

local function map(mode, lhs, rhs, desc, opts)
local options = { noremap = true, silent = true }
if opts then
options = vim.tbl_extend("force", options, opts)
end
vim.keymap.set(mode, lhs, rhs, vim.tbl_extend("force", options, { desc = desc }))
end
-- Buffer navigation
map("n", "<S-h>", "<cmd>bp<cr>", "")
map("n", "<S-k>", "<cmd>bn<cr>", "")
map("n", "<leader>bb", "<cmd>e #<cr>", "Switch to other buffer")
map("n", "<leader>`", "<cmd>e #<cr>", "Switch to other buffer")
map("n", "<leader>bd", "<cmd>bd<cr>", "Delete buffer")
map("n", "<leader>bp", "<cmd>bp<cr>", "Previous buffer")
map("n", "<leader>bn", "<cmd>bn<cr>", "Next buffer")
-- Better indentation
map("v", "<", "<gv")
map("v", ">", ">gv")
-- Lazy
map("n", "<leader>l", "<cmd>Lazy<cr>", "Lazy")
-- Mason
map("n", "<leader>cm", "<cmd>Mason<cr>", "Mason")
-- Clear search on escape
map({ "i", "n", "s" }, "<esc>", function()
vim.cmd("noh")
return "<esc>"
end, "", { expr = true })