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

106 lines
3.8 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", "<cmd>wincmd h<CR>")
vim.keymap.set("n", "<leader>j", "<cmd>wincmd j<CR>")
vim.keymap.set("n", "<leader>k", "<cmd>wincmd k<CR>")
vim.keymap.set("n", "<leader>l", "<cmd>wincmd l<CR>")
-- splits and buffers
vim.keymap.set("n", "<leader>sv", "<cmd>vsplit<CR>")
vim.keymap.set("n", "<leader>sz", "<cmd>split<CR>")
vim.keymap.set("n", "<leader>st", "<cmd>tabnew<CR>")
vim.keymap.set("n", "<leader>sb", "<cmd>Telescope buffers<CR>")
vim.keymap.set("n", "<leader>sh", "<cmd>tabprevious<CR>")
vim.keymap.set("n", "<leader>sl", "<cmd>tabnext<CR>")
-- basics
vim.keymap.set("n", "<leader>q", "<cmd>q<CR>")
vim.keymap.set("n", "<leader>Q", "<cmd>qa<CR>")
vim.keymap.set("n", "<leader>x", "<cmd>q!<CR>")
vim.keymap.set("n", "<leader>X", "<cmd>qa!<CR>")
vim.keymap.set("n", "<leader>w", "<cmd>w<CR>")
vim.keymap.set("n", "<leader>W", "<cmd>wa<CR>")
vim.keymap.set("n", "<leader>f", "<cmd>NvimTreeToggle<CR>")
vim.keymap.set("n", "<leader>F", "<cmd>Telescope find_files<CR>")
-- toggle term
vim.keymap.set("n", "<leader>c", "<cmd>ToggleTermToggleAll<CR>")
vim.keymap.set("n", "<leader>C", "<cmd>ToggleTerm<CR>")
-- frequent actions
vim.keymap.set("n", "<leader>ar", "<cmd>source ~/.config/nvim/init.lua<CR>")
vim.keymap.set("n", "<leader>ac", "<cmd>Telescope find_files cwd=~/.config/nvim<CR>")
-- keymap switches
vim.keymap.set("i", "<C-x>", "<Esc><cmd>set keymap=<CR>a")
vim.keymap.set("i", "<C-z>", "<Esc><cmd>set keymap=hebrew<CR>a")
-- telescope
vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>")
vim.keymap.set("n", "<leader>tw", "<cmd>Telescope lsp_dynamic_workspace_symbols<CR>")
vim.keymap.set("n", "<leader>to", "<cmd>Telescope oldfiles<CR>")
vim.keymap.set("n", "<leader>tg", "<cmd>Telescope live_grep<CR>")
vim.keymap.set("n", "<leader>ts", "<cmd>Telescope treesitter<CR>")
vim.keymap.set("n", "<leader>td", "<cmd>Telescope lsp_document_symbols<CR>")
-- git
vim.keymap.set("n", "<leader>vA", ":Git add ")
vim.keymap.set("n", "<leader>va", "<cmd>Git add .<CR>")
vim.keymap.set("n", "<leader>vc", "<cmd>Git commit<CR>")
vim.keymap.set("n", "<leader>vf", "<cmd>Git fetch<CR>")
vim.keymap.set("n", "<leader>vg", ":Git ")
vim.keymap.set("n", "<leader>vl", "<cmd>Git pull<CR>")
vim.keymap.set("n", "<leader>vp", "<cmd>Git push<CR>")
vim.keymap.set("n", "<leader>vs", "<cmd>Git<CR>")
-- dev
vim.keymap.set("n", "<leader>gd", "<cmd>Telescope lsp_definitions<CR>")
vim.keymap.set("n", "<leader>gi", "<cmd>Telescope lsp_implementations<CR>")
vim.keymap.set("n", "<leader>gr", "<cmd>Telescope lsp_references<CR>")
vim.keymap.set("n", "<leader>gq", "<cmd>Telescope diagnostics<CR>")
vim.keymap.set("n", "<leader>gs", "<cmd>LspRestart<CR>")
vim.keymap.set("n", "<leader>gf", "<cmd>Format<CR>")
vim.keymap.set("n", "<leader>gF", "<cmd>FormatWrite<CR>")
vim.keymap.set("n", "<leader>ga", function()
vim.lsp.buf.code_action()
end)
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)