mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 06:39:14 +00:00
71 lines
2.8 KiB
Lua
71 lines
2.8 KiB
Lua
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
-- Move
|
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv")
|
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv")
|
|
vim.keymap.set("v", ">", ">gv")
|
|
vim.keymap.set("v", "<", "<gv")
|
|
vim.keymap.set("v", "=", "=gv")
|
|
|
|
-- Centered motions
|
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
|
vim.keymap.set("n", "gd", "gdzz")
|
|
vim.keymap.set("n", "gD", "<C-w>vgd", { remap = true })
|
|
vim.keymap.set("n", "``", "``zz")
|
|
vim.keymap.set("n", "n", "nzzzv")
|
|
vim.keymap.set("n", "N", "Nzzzv")
|
|
vim.keymap.set("n", "J", "mzJ`z")
|
|
|
|
-- Better clipboard
|
|
vim.keymap.set({ "n", "x", "v" }, "<leader>d", '"_d')
|
|
vim.keymap.set({ "n", "x", "v" }, "<leader>c", '"_dc')
|
|
vim.keymap.set({ "n", "x", "v" }, "<leader>p", '"_dP')
|
|
vim.keymap.set({ "n", "x", "v" }, "<leader>y", '"+y')
|
|
|
|
-- Linewrap jk
|
|
-- Only use gj et al. when needed
|
|
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
|
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
|
|
|
-- Replace selected token
|
|
vim.keymap.set("n", "<leader>pv", function() vim.cmd("Oil") end) -- Project View
|
|
vim.keymap.set("n", "<leader>nf", function() vim.cmd("enew") end) -- New File
|
|
vim.keymap.set("n", "<leader>so", function() vim.cmd("so %") end) -- Source buffer
|
|
vim.keymap.set("c", "#capl", [[\(.\{-}\)]]) -- helpers in regex
|
|
vim.keymap.set("c", "#capm", [[\(.*\)]])
|
|
vim.keymap.set("n", "<leader>+x", function() vim.cmd("!chmod +x %") end) -- Permission
|
|
vim.keymap.set("n", "<leader>-x", function() vim.cmd("!chmod -x %") end)
|
|
vim.keymap.set("n", "<leader>hg", function() vim.cmd("Inspect") end) -- Highlight Group
|
|
vim.keymap.set("n", "Q", "<nop>") -- *do not* repeat the last recorded register [count] times.
|
|
|
|
-- Diagnostics
|
|
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float)
|
|
vim.keymap.set("n", "<leader>pe", function() vim.diagnostic.jump { count = -1, float = true } end)
|
|
vim.keymap.set("n", "<leader>ne", function() vim.diagnostic.jump { count = 1, float = true } end)
|
|
|
|
-- Resize window using shift + arrow keys
|
|
-- Credit: github.com/GrizzlT
|
|
vim.keymap.set("n", "<S-Up>", "<cmd>resize +2<cr>")
|
|
vim.keymap.set("n", "<S-Down>", "<cmd>resize -2<cr>")
|
|
vim.keymap.set("n", "<S-Left>", "<cmd>vertical resize -2<cr>")
|
|
vim.keymap.set("n", "<S-Right>", "<cmd>vertical resize +2<cr>")
|
|
|
|
-------------
|
|
-- Plugins --
|
|
-------------
|
|
-- Fugitive
|
|
vim.keymap.set("n", "<leader><space>", ":Git<CR>5<Down>")
|
|
vim.keymap.set("n", "<leader>gb", ":Git blame<CR>")
|
|
vim.keymap.set("n", "<leader>gB", ":Git blame --ignore-revs-file=.git-blame-ignore-revs<CR>")
|
|
|
|
vim.api.nvim_create_autocmd("WinClosed", {
|
|
group = vim.api.nvim_create_augroup("conf_fugitive_prevwin", {}),
|
|
callback = function(args)
|
|
local win = tonumber(args.match)
|
|
if win == vim.api.nvim_get_current_win() and vim.bo.filetype == "fugitive" then
|
|
vim.cmd.wincmd("p")
|
|
end
|
|
end,
|
|
})
|