local M = {} local resize = require("my.resize").resize local utils = require "my.utils" local nmap, imap, vmap, tmap = utils.nmap, utils.imap, utils.vmap, utils.tmap -- Window splits nmap("", function() utils.winmove "j" end) nmap("", function() utils.winmove "k" end) nmap("", function() utils.winmove "l" end) nmap("", function() utils.winmove "h" end) nmap("", vim.cmd.quit) -- Resize splits nmap("", function() resize(false, -2) end) nmap("", function() resize(false, 2) end) nmap("", function() resize(true, -2) end) nmap("", function() resize(true, 2) end) -- Easy move lines nmap("", ":m+==") nmap("", ":m-2==") vmap("", ":m '>+1gv=gv") vmap("", ":m '<-2gv=gv") nmap("", vim.cmd.nohl) nmap("", "") nmap("", "") -- Re-bind for jump list -- nmap("n", "windo set nu! relativenumber!") -- nmap("t", "windo set expandtab!") -- nmap(".", "w") -- nmap("S", require("my.nodesplit").split) nmap("[d", vim.diagnostic.goto_prev, "previous diagnostic") nmap("]d", vim.diagnostic.goto_next, "next diagnostic") nmap("[q", vim.cmd.cprevious, "quickfix previous") nmap("]q", vim.cmd.cnext, "quickfix next") nmap("q", vim.diagnostic.setqflist, "set diagnostic to quickfix list") -- nmap("", utils.reload, "reload configuration") nmap("[t", vim.cmd.tabp, "previous tab") nmap("]t", vim.cmd.tabn, "next tab") -- imap("", require("my.tab").forwards) -- imap("", require("my.tab").backwards) imap("", "O") imap("jk", "") vmap("p", '"_dP') vmap(">", ">gv") vmap("<", "r", vim.lsp.buf.rename, "Rename", bufnr) -- nmap("cf", vim.lsp.buf.format, "Format document", bufnr) -- nmap("ca", vim.lsp.buf.code_action, "Code actions", bufnr) -- nmap("ci", vim.lsp.buf.implementation, "Go to implementation", bufnr) -- nmap("D", vim.lsp.buf.type_definition, "Go to type definition", bufnr) -- nmap("gr", "Telescope lsp_references", "View references", bufnr) -- -- if client.server_capabilities.hoverProvider then -- nmap("K", vim.lsp.buf.hover, "LSP hover", bufnr) -- end -- end M.telescope_keymaps = function(fns) nmap("", fns.project, "Find project files") nmap("fn", fns.dotfiles, "Dotfiles") nmap("", fns.builtin.git_files, "Find git files") nmap("fg", fns.builtin.live_grep, "Live grep") nmap("gs", fns.builtin.git_status, "Git status") end M.gitsigns_keymaps = function(bufnr) local gs = require "gitsigns" nmap("]c", function() if vim.wo.diff then return "]c" end vim.schedule(function() gs.next_hunk() end) return "" end, "next hunk", bufnr) nmap("[c", function() if vim.wo.diff then return "[c" end vim.schedule(function() gs.prev_hunk() end) return "" end, "previous hunk", bufnr) end return M