local set = vim.keymap.set local v = { ["J"] = { ":m '>+1gv=gv" }, ["K"] = { ":m '<-2gv=gv" }, } local n = { ["P"] = { [["+p]], desc = "Paste from sys clipboard" }, ["J"] = { "mzJ`z" }, [""] = { "zz" }, [""] = { "zz" }, ["n"] = { "nzzzv" }, ["N"] = { "Nzzzv" }, ["Q"] = { "" }, -- buffer ["bf"] = { vim.lsp.buf.format, desc = "Format buffer" }, ["bs"] = { ":write ", desc = "Save buffer" }, [""] = { "cnextzz" }, [""] = { "cprevzz" }, ["k"] = { "lnextzz" }, ["j"] = { "lprevzz" }, -- window movement ["ww"] = { "w", desc = "Move between splits" }, ["wc"] = { "c", desc = "Close split" }, ["wv"] = { "v", desc = "Vertical split" }, ["ws"] = { "s", desc = "Horizontal split" }, [""] = { function() if vim.bo.filetype ~= "lua" then vim.notify("Not a lua file") return end vim.cmd("so") end, desc = "Source current file", }, ["ht"] = { function() require("taken.functions.themes").themeselector() end, desc = "Theme selector", }, ["s"] = { [[:%s/\<\>//gI]], desc = "Replace all instances of the word on cursor", }, -- lazy ["lu"] = { "Lazy", desc = "Lazy UI" }, } local vn = { ["y"] = { [["+y]], desc = "Yank in to sys clipboard" }, ["d"] = { [["_d]], desc = "Actually deletes text" }, } for map, command in pairs(v) do if command.desc then set("v", map, command[1], { desc = command.desc }) else set("v", map, command[1]) end end for map, command in pairs(n) do if command.desc then set("n", map, command[1], { desc = command.desc }) else set("n", map, command[1]) end end for map, command in pairs(vn) do if command.desc then set({ "v", "n" }, map, command[1], { desc = command.desc }) else set({ "v", "n" }, map, command[1]) end end