vim.keymap.set("i", "jj", "<Esc>", {})
vim.keymap.set("n", "j", "gj", {})
vim.keymap.set("n", "k", "gk", {})
vim.keymap.set("n", "<S-k>", "<Nop>", {})
vim.keymap.set("t", "jj", "<C-\\><C-n>", { noremap = true, silent = true })
vim.keymap.set("n", "<Backspace>", ":q<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "<C-U>", "<C-O>", { noremap = true })
vim.keymap.set("n", "<C-E>", "<C-U>zz", { noremap = true })
vim.keymap.set("n", "<C-D>", "<C-D>zz", { noremap = true })
vim.keymap.set("n", "<C-I>", "<C-I>", { noremap = true })
vim.keymap.set("n", "n", "nzz", { noremap = true })
vim.keymap.set("n", "N", "Nzz", { noremap = true })
vim.keymap.set("x", "<leader>p", [["_dP]], { noremap = true })
vim.keymap.set({"n", "v"}, "<leader>y", [["+y]])
vim.keymap.set({"n", "v"}, "<leader>Y", [["+Y]])
vim.keymap.set("n", "<Tab>", "<Nop>", { noremap = true })
vim.keymap.set("n", "<leader><space>", ":noh<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "gn", ":n<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>d", require("trouble").open, { noremap = true, silent = true })
vim.keymap.set("n", "gi", ":ClangdSwitchSourceHeader<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>t", ":NvimTreeFindFileToggle<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "-", require("oil").open, { desc = "Open parent directory" })
vim.keymap.set("n", "<leader>-", require("oil").open, { desc = "Open parent directory" })
vim.keymap.set("n", "<leader>g", require("neogit").open, { noremap = true, silent = true })
vim.keymap.set("x", "<leader>a", "<C-A>", { noremap = true, silent = true })
vim.keymap.set("x", "<leader>x", "<C-X>", { noremap = true, silent = true })
vim.keymap.set("x", "<leader>ga", "g<C-A>", { noremap = true, silent = true })
vim.keymap.set("x", "<leader>ga", "g<C-A>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>s", ":sp<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>v", ":vs<cr>", { noremap = true, silent = true })
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
