dots/config/astronvim/lua/user/mappings.lua
2023-04-08 16:54:56 -04:00

167 lines
3.4 KiB
Lua

return {
n = {
--Usefull vanilla remaps
["J"] = { "mzJ`z", desc = "Keep cursor in column while joining lines" },
--
["<C-d>"] = { "<C-d>zz", desc = "Keep cursor centered while junping" },
["<C-u>"] = { "<C-u>zz", desc = "Keep cursor centered while junping" },
-- Keep cursor centered while searching
["n"] = { "nzzzv", desc = "Keep cursor centered while searching" },
["N"] = { "Nzzzv", desc = "Keep cursor centered while searching" },
["Q"] = "<nop>",
-- Buffers
["H"] = {
function()
require("astronvim.utils.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1))
end,
desc = "Previous buffer",
},
["L"] = {
function()
require("astronvim.utils.buffer").nav(vim.v.count > 0 and vim.v.count or 1)
end,
desc = "Next buffer",
},
["<C-t>"] = { "<cmd>ToggleTerm<cr>", desc = "Toggle terminal" },
["<leader>fn"] = false,
["<leader>fo"] = false,
["<leader>fh"] = false,
["<leader>fb"] = false,
["<F10>"] = false,
["<F11>"] = false,
["<F12>"] = false,
["<F1>"] = {
function()
require("dap").terminate()
end,
desc = "Debugger: Stop",
}, -- S-F1
["<F2>"] = {
function()
require("dap").restart_frame()
end,
desc = "Debugger: Restart",
},
["<F3>"] = {
function()
require("dap").step_out()
end,
desc = "Debugger: Step Out",
},
["<F4>"] = {
function()
require("dap").step_into()
end,
desc = "Debugger: Step Into",
},
["<F5>"] = {
function()
require("dap").step_over()
end,
desc = "Debugger: Step Over",
},
["<F6>"] = {
function()
require("dap").continue()
end,
desc = "Debugger: Start",
},
["<F7>"] = {
function()
require("dap").toggle_breakpoint()
end,
desc = "Debugger: Toggle Breakpoint",
},
["<leader>DB"] = {
function()
require("dap").toggle_breakpoint(vim.fn.input("Breakpoint condition: "))
end,
desc = "Debugger: Toggle Breakpoint with contidion",
},
["<leader>DD"] = {
function()
require("dap").clear_breakpoints()
end,
desc = "Debugger: clear breakpoint",
},
["<leader>fp"] = {
function()
require("telescope").extensions.projects.projects()
end,
desc = "Search project",
},
["<leader>lj"] = {
function()
vim.diagnostic.goto_next()
end,
desc = "Go to next diagnostic",
},
["<leader>lk"] = {
function()
vim.diagnostic.goto_prev()
end,
desc = "Go to prev diagnostic",
},
["<leader>Ch"] = {
function()
require("nvim-comment-frame").add_comment()
end,
desc = "Add a comment frame",
},
["<leader>CH"] = {
function()
require("nvim-comment-frame").add_multiline_comment()
end,
desc = "Add a multiline comment frame",
},
["<leader>Cd"] = {
function()
require("neogen").generate()
end,
desc = "Generate comment docstring",
},
["<leader>ft"] = {
"<cmd>TodoTrouble<CR>",
desc = "Search TODOS",
},
["<leader>r"] = {
[[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
desc = "Search and replace current word",
},
["<leader>R"] = {
":%s/",
desc = "Search and replace in whole file",
},
},
v = {
["<leader>r"] = {
":s/",
desc = "Search and replace",
},
["p"] = {
[["_dP]],
desc = "Paste whitout lossing yanked text",
},
-- move selection up and down
["J"] = ":m '>+1<CR>gv=gv",
["K"] = ":m '<-2<CR>gv=gv",
},
t = {
["<C-t>"] = { "<cmd>ToggleTerm<cr>", desc = "Toggle terminal" },
},
}