Files
dots/.config/nvim/lua/mappings.lua
2023-07-08 15:20:41 +03:00

126 lines
4.1 KiB
Lua

-- leader
vim.g.mapleader = " "
-- visual block indenting
vim.keymap.set("v", "<", "<gv")
vim.keymap.set("v", ">", ">gv")
-- centered cursor
vim.keymap.set("n", "n", "nzz")
vim.keymap.set("n", "N", "Nzz")
vim.keymap.set("n", "J", "mzJ`z")
-- escape terminal mode
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
-- newline without entering insert mode
vim.keymap.set("n", "<C-J>", "o<Esc>")
vim.keymap.set("n", "<C-K>", "O<Esc>")
-- movement
vim.keymap.set("n", "<leader>h", ":wincmd h<cr>")
vim.keymap.set("n", "<leader>j", ":wincmd j<cr>")
vim.keymap.set("n", "<leader>k", ":wincmd k<cr>")
vim.keymap.set("n", "<leader>l", ":wincmd l<cr>")
-- splits and buffers
vim.keymap.set("n", "<leader>sv", ":vsplit<CR>")
vim.keymap.set("n", "<leader>sz", ":split<CR>")
vim.keymap.set("n", "<leader>st", ":tabnew<CR>")
vim.keymap.set("n", "<leader>sb", ":Telescope buffers<CR>")
vim.keymap.set("n", "<leader>sh", ":tabprevious<cr>")
vim.keymap.set("n", "<leader>sl", ":tabnext<cr>")
-- basics
vim.keymap.set("n", "<leader>q", ":q<CR>")
vim.keymap.set("n", "<leader>Q", ":qa<CR>")
vim.keymap.set("n", "<leader>x", ":q!<CR>")
vim.keymap.set("n", "<leader>X", ":qa!<CR>")
vim.keymap.set("n", "<leader>w", ":w<CR>")
vim.keymap.set("n", "<leader>W", ":wa<CR>")
vim.keymap.set("n", "<leader>f", ":NvimTreeToggle<CR>")
vim.keymap.set("n", "<leader>F", ":Telescope find_files<CR>")
-- toggle term
vim.keymap.set("n", "<leader>c", ":ToggleTermToggleAll<CR>")
vim.keymap.set("n", "<leader>C", ":ToggleTerm<CR>")
-- frequent actions
vim.keymap.set("n", "<leader>ar", ":source ~/.config/nvim/init.lua<CR>")
vim.keymap.set("n", "<leader>ac", ":cd ~/.config/nvim/<CR>")
-- keymap switches
vim.keymap.set("i", "<C-x>", "<Esc>:set keymap=<CR>a")
vim.keymap.set("i", "<C-z>", "<Esc>:set keymap=hebrew<CR>a")
-- telescope
vim.keymap.set("n", "<leader>tt", ":Telescope<CR>")
vim.keymap.set("n", "<leader>tl", ":Telescope lsp_dynamic_workspace_symbols<CR>")
vim.keymap.set("n", "<leader>to", ":Telescope oldfiles<CR>")
vim.keymap.set("n", "<leader>tg", ":Telescope live_grep<CR>")
vim.keymap.set("n", "<leader>ts", ":Telescope treesitter<CR>")
-- code
vim.keymap.set("n", "<leader>gf", ":Neoformat<CR>")
vim.keymap.set("n", "<leader>gd", ":Telescope lsp_definitions<CR>")
vim.keymap.set("n", "<leader>gi", ":Telescope lsp_implementations<CR>")
vim.keymap.set("n", "<leader>gr", ":Telescope lsp_references<CR>")
vim.keymap.set("n", "<leader>ga", ":Telescope lsp_code_actions<CR>")
vim.keymap.set("n", "<leader>gq", ":Telescope diagnostics<CR>")
vim.keymap.set("n", "<leader>gD", function()
vim.lsp.buf.declaration()
end)
vim.keymap.set("n", "<leader>gk", function()
vim.lsp.buf.hover()
end)
vim.keymap.set("n", "<leader>gt", function()
vim.lsp.buf.type_definition()
end)
vim.keymap.set("n", "<leader>gn", function()
vim.lsp.buf.rename()
end)
vim.keymap.set("n", "<leader>ge", function()
vim.lsp.diagnostic.show_line_diagnostics()
end)
vim.keymap.set("n", "[d", function()
vim.lsp.diagnostic.goto_prev()
end)
vim.keymap.set("n", "]d", function()
vim.lsp.diagnostic.goto_next()
end)
-- debug mappings
vim.keymap.set("n", "<leader>dc", function()
require("dap").continue()
end)
vim.keymap.set("n", "<leader>dn", function()
require("dap").step_over()
end)
vim.keymap.set("n", "<leader>di", function()
require("dap").step_into()
end)
vim.keymap.set("n", "<leader>do", function()
require("dap").step_out()
end)
vim.keymap.set("n", "<leader>db", function()
require("dap").toggle_breakpoint()
end)
vim.keymap.set("n", "<leader>dl", function()
require("dap").run_last()
end)
vim.keymap.set("n", "<leader>dq", function()
require("dap").close()
end)
vim.keymap.set("n", "<leader>du", function()
require("dapui").toggle()
end)
vim.keymap.set("n", "<leader>dv", ":Telescope dap variables<CR>")
vim.keymap.set("n", "<leader>dh", ":Telescope dap commands<CR>")
vim.keymap.set("n", "<leader>dp", ":Telescope dap list_breakpoints<CR>")
-- git
vim.keymap.set("n", "<leader>vs", ":Git<CR>")
vim.keymap.set("n", "<leader>vb", ":Telescope git_branches<CR>")
vim.keymap.set("n", "<leader>vc", ":Telescope git_commits<CR>")
vim.keymap.set("n", "<leader>vf", ":Telescope git_files<CR>")