Files
neovim-config/lua/taken/core/remaps.lua

92 lines
2.5 KiB
Lua

local set = vim.keymap.set
local v = {
["J"] = { ":m '>+1<CR>gv=gv" },
["K"] = { ":m '<-2<CR>gv=gv" },
}
local n = {
["<leader>P"] = { [["+p]], desc = "Paste from sys clipboard" },
["J"] = { "mzJ`z" },
["<C-d>"] = { "<C-d>zz" },
["<C-u>"] = { "<C-u>zz" },
["n"] = { "nzzzv" },
["N"] = { "Nzzzv" },
["Q"] = { "<nop>" },
["0"] = { "^", desc = "Go to first non blank character in line" },
["<leader>0"] = { "0", desc = "Go to true line beggining" },
["<leader>q"] = { ":noh<CR>" },
-- buffer
["<leader>bf"] = { vim.lsp.buf.format, desc = "Format buffer" },
["<leader>bs"] = { ":write <CR>", desc = "Save buffer" },
["<C-k>"] = { "<cmd>cnext<CR>zz" },
["<C-j>"] = { "<cmd>cprev<CR>zz" },
["<leader>k"] = { "<cmd>lnext<CR>zz" },
["<leader>j"] = { "<cmd>lprev<CR>zz" },
-- window movement
["<leader>ww"] = { "<C-w>w", desc = "Move between splits" },
["<leader>wc"] = { "<C-w>c", desc = "Close split" },
["<leader>wv"] = { "<C-w>v", desc = "Vertical split" },
["<leader>ws"] = { "<C-w>s", desc = "Horizontal split" },
["<leader><leader>"] = {
function()
if vim.bo.filetype ~= "lua" then
vim.notify("Not a lua file")
return
end
vim.cmd("so")
end,
desc = "Source current file",
},
["<leader>ht"] = {
function()
require("taken.functions.themes").themeselector()
end,
desc = "Theme selector",
},
["<leader>sr"] = {
[[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
desc = "Replace all instances of the word on cursor",
},
-- lazy
["<leader>lu"] = { "<cmd>Lazy<CR>", desc = "Lazy UI" },
}
local vn = {
["<leader>y"] = { [["+y]], desc = "Yank in to sys clipboard" },
["<leader>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, silent = true })
else
set("v", map, command[1], { silent = true })
end
end
for map, command in pairs(n) do
if command.desc then
set("n", map, command[1], { desc = command.desc, silent = true })
else
set("n", map, command[1], { silent = true })
end
end
for map, command in pairs(vn) do
if command.desc then
set({ "v", "n" }, map, command[1], { desc = command.desc, silent = true })
else
set({ "v", "n" }, map, command[1], { silent = true })
end
end