local set = vim.keymap.set set("n", ":", "FineCmdline", { noremap = true }) set("v", "J", ":m '>+1gv=gv") set("v", "K", ":m '<-2gv=gv") set("n", "J", "mzJ`z") set("n", "", "zz") set("n", "", "zz") set("n", "n", "nzzzv") set("n", "N", "Nzzzv") set({ "n", "v" }, "y", [["+y]], { desc = "Yank in to sys clipboard" }) set("n", "P", [["+p]], { desc = "Paste from sys clipboard" }) set({ "n", "v" }, "d", [["_d]], { desc = "Actually deletes text" }) set("n", "Q", "") -- buffer set("n", "bf", vim.lsp.buf.format, { desc = "Formate buffer" }) set("n", "bs", ":write ", { desc = "Save buffer" }) set("n", "bt", ":ToggleTerm direction=float ", { desc = "Open terminal" }) set("n", "bT", ":ToggleTerm direction=horizontal ", { desc = "Open horizontal terminal split" }) set("n", "", ":BufferLineCycleNext ", { desc = "Cycle tabs" }) set("n", "bn", ":BufferLineCycleNext ", { desc = "Next tab" }) set("n", "bp", ":BufferLineCyclePrev ", { desc = "NextPrevious tab" }) set("n", "", "cnextzz") set("n", "", "cprevzz") set("n", "k", "lnextzz") set("n", "j", "lprevzz") set( "n", "s", [[:%s/\<\>//gI]], { desc = "Replace all instances of the word on cursor" } ) set("n", "", function() vim.cmd("so") end, { desc = "Source current file" }) -- telescope set("n", "ff", "Telescope find_files", { desc = "Find files" }) set("n", "fg", "Telescope live_grep", { desc = "Live grep" }) set("n", "fb", "Telescope buffers", { desc = "Find buffers" }) set("n", "fB", "Telescope builtin", { desc = "Find buffers" }) set("n", "fh", "Telescope help_tags", { desc = "Help tags" }) set("n", "fp", "Telescope project", { desc = "Find projects" }) set("n", "fd", "Telescope file_browser", { desc = "File browser" }) set("n", "fr", "Telescope reloader", { desc = "Reload config" }) set("n", "ht", "Telescope colorscheme", { desc = "Colorscheme" }) set("n", "fc", "Telescope commands", { desc = "Commands" }) -- window movement set("n", "ww", "w", { desc = "Move between splits" }) set("n", "wc", "c", { desc = "Close split" }) set("n", "wv", "v", { desc = "Vertical split" }) set("n", "ws", "s", { desc = "Horizontal split" }) -- lazy set("n", "lu", "Lazy", { desc = "Lazy UI" }) -- nvim-tree set("n", "n", ":NvimTreeToggle ") set("n", "e", ":NvimTreeFocus ") set("n", "r", ":NvimTreeRefresh ") set("n", "tr", function () require("nvim-tree.api").tree.change_root(vim.fn.getcwd()) end, {desc = "Change root dir to current dir"} ) -- trouble set("n", "tt", "TroubleToggle ", { silent = true }) -- markdown preview set("n", "bm", "MarkdownPreviewToggle ", { silent = true }) -- neogit set("n", "gg", "Neogit ", { silent = true })