dotfiles/nvim/lua/my/keymaps.lua

79 lines
2.2 KiB
Lua
Raw Normal View History

2023-08-21 14:31:22 +00:00
local M = {}
2023-01-01 14:16:21 +00:00
local resize = require("my.resize").resize
local utils = require "my.utils"
2024-04-18 18:37:45 +00:00
local nmap, imap, vmap, tmap = utils.nmap, utils.imap, utils.vmap, utils.tmap
2023-01-01 14:16:21 +00:00
-- Window splits
2024-12-14 18:56:41 +00:00
nmap("<C-J>", function() utils.winmove "j" end)
nmap("<C-K>", function() utils.winmove "k" end)
nmap("<C-L>", function() utils.winmove "l" end)
nmap("<C-H>", function() utils.winmove "h" end)
2023-01-01 14:16:21 +00:00
nmap("<C-Q>", vim.cmd.quit)
-- Resize splits
2024-12-14 18:56:41 +00:00
nmap("<A-Up>", function() resize(false, -2) end)
nmap("<A-Down>", function() resize(false, 2) end)
nmap("<A-Left>", function() resize(true, -2) end)
nmap("<A-Right>", function() resize(true, 2) end)
2023-01-01 14:16:21 +00:00
-- Easy move lines
2024-12-28 10:05:18 +00:00
nmap("<C-S-J>", ":m+<CR>==")
nmap("<C-S-K>", ":m-2<CR>==")
vmap("<C-S-J>", ":m '>+1<CR>gv=gv")
vmap("<C-S-K>", ":m '<-2<CR>gv=gv")
2023-01-01 14:16:21 +00:00
nmap("<Esc>", vim.cmd.nohl)
nmap("<Tab>", "<C-^>")
2023-05-07 11:35:05 +00:00
nmap("<C-i>", "<Tab>") -- Re-bind for jump list
2023-01-01 14:16:21 +00:00
nmap("<Leader>q", vim.diagnostic.setqflist, "set diagnostic to quickfix list")
2024-12-14 18:56:41 +00:00
nmap("[d", function() vim.diagnostic.jump({ count = -1, float = true }) end, "previous diagnostic")
nmap("]d", function() vim.diagnostic.jump({ count = 1, float = true }) end, "next diagnostic")
2023-01-01 14:16:21 +00:00
nmap("[t", vim.cmd.tabp, "previous tab")
nmap("]t", vim.cmd.tabn, "next tab")
2023-09-21 08:18:48 +00:00
-- imap("<Tab>", require("my.tab").forwards)
-- imap("<S-Tab>", require("my.tab").backwards)
2024-12-14 18:56:41 +00:00
2023-01-01 14:16:21 +00:00
imap("jk", "<Esc>")
vmap("<Leader>p", '"_dP')
vmap(">", ">gv")
vmap("<", "<gv")
2023-06-14 09:30:11 +00:00
2024-12-14 18:56:41 +00:00
tmap("<Esc><Esc>", "<C-\\><C-n>")
2023-06-14 09:30:11 +00:00
2023-08-21 14:31:22 +00:00
M.telescope_keymaps = function(fns)
nmap("<C-p>", fns.project, "Find project files")
nmap("<Leader>fn", fns.dotfiles, "Dotfiles")
nmap("<Leader><C-p>", fns.builtin.git_files, "Find git files")
nmap("<Leader>fg", fns.builtin.live_grep, "Live grep")
nmap("<Leader>gs", fns.builtin.git_status, "Git status")
end
2023-08-21 14:31:22 +00:00
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 "<Ignore>"
end, "next hunk", bufnr)
nmap("[c", function()
if vim.wo.diff then
return "[c"
end
vim.schedule(function()
gs.prev_hunk()
end)
return "<Ignore>"
end, "previous hunk", bufnr)
end
return M