107 lines
6.2 KiB
Lua
Executable File
107 lines
6.2 KiB
Lua
Executable File
vim.g.mapleader = " "
|
|
local keymap = vim.keymap
|
|
|
|
-- General keymaps
|
|
-- keymap.set("i", "jk", "<ESC>", { desc = "Exit insert mode eith jk" })
|
|
-- keymap.set("i", "ii", "<ESC>", { desc = "exit insert mode with ii" })
|
|
keymap.set("n", "<leader><space>", ":nohl<CR>", { desc = "Clear search highlights" })
|
|
keymap.set("n", "<leader>n", "o<ESC>", { desc = "Add new line" })
|
|
keymap.set("n", "<leader>N", "O<ESC>", { desc = "Add new line above" })
|
|
|
|
-- File saves and exits
|
|
-- keymap.set("n", "<leader>wq", ":wq<CR>", { desc = "save and quit" })
|
|
-- keymap.set("n", "<leader>wqa", ":wqa<CR>", { desc = "save all and quit" })
|
|
-- keymap.set("n", "<leader>qq", ":q!<CR>", { desc = "quit without saving" })
|
|
-- keymap.set("n", "<leader>ww", ":w<CR>", { desc = "save" })
|
|
|
|
-- increment/decrement numbers
|
|
keymap.set("n", "<leader>+", "<C-a>", { desc = "Incrment number by 1" })
|
|
keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrment number by 1" })
|
|
|
|
-- Split window management
|
|
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" })
|
|
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" })
|
|
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" })
|
|
keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" })
|
|
keymap.set("n", "<A-down>", "<C-w>-", { desc = "make split window height shorter" })
|
|
keymap.set("n", "<A-up>", "<C-w>+", { desc = "make split windows height taller" })
|
|
keymap.set("n", "<A-right>", "<C-w>3>", { desc = "make split windows width bigger" })
|
|
keymap.set("n", "<A-left>", "<C-w>3<", { desc = "make split windows width smaller" })
|
|
keymap.set("n", "<leader><left>", "<C-w><left>", { desc = "Move to left split" })
|
|
keymap.set("n", "<leader><right>", "<C-w><right>", { desc = "Move to right split" })
|
|
keymap.set("n", "<leader><up>", "<C-w><up>", { desc = "Move to top split" })
|
|
keymap.set("n", "<leader><down>", "<C-w><down>", { desc = "Move to bottom split" })
|
|
|
|
-- Tab management
|
|
keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" }) -- open new tab
|
|
keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" }) -- close current tab
|
|
keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" }) -- go to next tab
|
|
keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" }) -- go to previous tab
|
|
keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" }) -- move current buffer to new tab
|
|
keymap.set("n", "<leader>sm", ":MaximizerToggle<CR>", { desc = "toggle maximize tab" })
|
|
|
|
-- Diff keymaps
|
|
keymap.set("n", "<leader>cc", ":diffput<CR>", { desc = "put diff from current to other during diff" })
|
|
keymap.set("n", "<leader>cj", ":diffget 1<CR>", { desc = "get diff from left (local) during merge" })
|
|
keymap.set("n", "<leader>ck", ":diffget 3<CR>", { desc = "get diff from right (remote) during merge" })
|
|
keymap.set("n", "<leader>cn", "]c", { desc = "next diff hunk" })
|
|
keymap.set("n", "<leader>cp", "[c", { desc = "previous diff hunk" })
|
|
|
|
-- Quickfix keymaps
|
|
keymap.set("n", "<leader>qo", ":copen<CR>", { desc = "open quickfix list" })
|
|
keymap.set("n", "<leader>qf", ":cfirst<CR>", { desc = "jump to first quickfix list item" })
|
|
keymap.set("n", "<leader>qn", ":cnext<CR>", { desc = "jump to next quickfix list item" })
|
|
keymap.set("n", "<leader>qp", ":cprev<CR>", { desc = "jump to prev quickfix list item" })
|
|
keymap.set("n", "<leader>ql", ":clast<CR>", { desc = "jump to last quickfix list item" })
|
|
keymap.set("n", "<leader>qc", ":cclose<CR>", { desc = "close quickfix list" })
|
|
|
|
-- Nvim-tree
|
|
keymap.set("n", "<leader>ee", ":NvimTreeToggle<CR>", { desc = "toggle file explorer" })
|
|
keymap.set("n", "<leader>er", ":NvimTreeFocus<CR>", { desc = "toggle focus to file explorer" })
|
|
keymap.set("n", "<leader>ef", ":NvimTreeFindFile<CR>", { desc = "find file in file explorer" })
|
|
|
|
-- Telescope
|
|
keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<CR>", { desc = "Find files" })
|
|
keymap.set("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", { desc = "Live grep" })
|
|
keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { desc = "Find buffers" })
|
|
keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<CR>", { desc = "Help tags" })
|
|
keymap.set("n", "<leader>fs", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "Fuzzy find current buffer" })
|
|
keymap.set("n", "<leader>fo", "<cmd>Telescope lsp_document_symbols<CR>", { desc = "Lsp document symbols" })
|
|
keymap.set("n", "<leader>fi", "<cmd>Telescope lsp_incoming_calls<CR>", { desc = "Lsp incoming calls" })
|
|
keymap.set("n", "<leader>fm", function()
|
|
require("telescope.builtin").treesitter({ default_text = "" })
|
|
end, { desc = "Telescope treesitter" })
|
|
|
|
-- LSP
|
|
keymap.set("n", "<leader>gg", "<cmd>lua vim.lsp.buf.hover()<CR>")
|
|
keymap.set("n", "<leader>gd", "<cmd>lua vim.lsp.buf.definition()<CR>")
|
|
keymap.set("n", "<leader>gD", "<cmd>lua vim.lsp.buf.declaration()<CR>")
|
|
keymap.set("n", "<leader>gi", "<cmd>lua vim.lsp.buf.implementation()<CR>")
|
|
keymap.set("n", "<leader>gt", "<cmd>lua vim.lsp.buf.type_definition()<CR>")
|
|
keymap.set("n", "<leader>gr", "<cmd>lua vim.lsp.buf.references()<CR>")
|
|
keymap.set("n", "<leader>gs", "<cmd>lua vim.lsp.buf.signature_help()<CR>")
|
|
keymap.set("n", "<leader>rr", "<cmd>lua vim.lsp.buf.rename()<CR>")
|
|
keymap.set("n", "<leader>gf", "<cmd>lua vim.lsp.buf.format({async = true})<CR>")
|
|
keymap.set("v", "<leader>gf", "<cmd>lua vim.lsp.buf.format({async = true})<CR>")
|
|
keymap.set("n", "<leader>ga", "<cmd>lua vim.lsp.buf.code_action()<CR>")
|
|
keymap.set("n", "<leader>gl", "<cmd>lua vim.diagnostic.open_float()<CR>")
|
|
keymap.set("n", "<leader>gp", "<cmd>lua vim.diagnostic.goto_prev()<CR>")
|
|
keymap.set("n", "<leader>gn", "<cmd>lua vim.diagnostic.goto_next()<CR>")
|
|
keymap.set("n", "<leader>tr", "<cmd>lua vim.lsp.buf.document_symbol()<CR>")
|
|
keymap.set("i", "<C-Space>", "<cmd>lua vim.lsp.buf.completion()<CR>")
|
|
|
|
-- Database
|
|
keymap.set("n", "<leader>db", function()
|
|
vim.cmd("tabnew")
|
|
vim.cmd("DBUIToggle")
|
|
end, { desc = "Open dadbod in new tab" })
|
|
keymap.set("n", "<leader>dt", function()
|
|
vim.cmd("DBUIToggle")
|
|
end, { desc = "Toggle dabase ui" })
|
|
keymap.set("n", "<leader>da", function()
|
|
vim.cmd("DBUIAddConnection")
|
|
end, { desc = "Add new database connection" })
|
|
|
|
-- Aerial
|
|
keymap.set("n", "<leader>a", "<cmd>AerialToggle!<CR>", { desc = "Toggle aerial (symbols)" })
|