nvim/lua/andrew/remap.lua

118 lines
3.6 KiB
Lua

vim.g.mapleader = " "
-- opens file explorer
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
-- centers cursor when jumping up and down page
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "J", "mzJ`z")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- step through visual lines by default
vim.keymap.set("n", "j", "gj")
vim.keymap.set("n", "gj", "j")
vim.keymap.set("n", "k", "gk")
vim.keymap.set("n", "gk", "k")
vim.keymap.set("v", "j", "gj")
vim.keymap.set("v", "gj", "j")
vim.keymap.set("v", "k", "gk")
vim.keymap.set("v", "gk", "k")
-- easier escape back to normal mode
vim.keymap.set("i", "<C-c>", "<Esc>")
vim.keymap.set("n", "Q", "<nop>")
-- universal find and replace
vim.keymap.set("n", "<leader>r", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
-- moving highlighted text
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
-- allow for pasting over without losing buffer
vim.keymap.set("x", "<leader>p", "\"_dP")
-- allow copying to system clipboard
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>y", "\"+y")
-- allow deleting to void register
vim.keymap.set("n", "<leader>d", "\"_d")
vim.keymap.set("v", "<leader>d", "\"_d")
vim.keymap.set("n", "<leader>tc",
function ()
local col = "78"
print(vim.o.cc)
if vim.o.cc == col then
vim.o.cc = ""
else
vim.o.cc = col
end
end,
{desc = "Toggle color column"})
vim.keymap.set("n", "<leader>t", "<noop>", {desc = "Toggle"})
vim.keymap.set("n", "<leader>tl",
function ()
if vim.wo.number == false and vim.wo.relativenumber == false then
vim.wo.number = true
print("absolute numbers")
elseif vim.wo.number == true and vim.wo.relativenumber == false then
vim.wo.relativenumber = true
print("relative line numbers")
else
vim.wo.number = false
vim.wo.relativenumber = false
print("no line numbers")
end
end,
{desc = "Toggle line numbers"})
vim.keymap.set("n", "<leader>tw",
function ()
if vim.wo.wrap then
vim.wo.wrap = false
print("nowrap")
else
vim.wo.wrap = true
print("wrap")
end
end,
{desc = "Toggle line wrapping"})
-- case insensitive search
vim.keymap.set("n", "<leader>/", "/\\c")
vim.keymap.set("n", "<leader>?", "?\\c")
vim.keymap.set("n", "<leader>hF",
function()
local result = vim.treesitter.get_captures_at_cursor(0)
print(vim.inspect(result))
end,
{ noremap = true, silent = false, desc = "Describe face" }
)
local str = string.format
for i = 1, 9 do
vim.keymap.set("n", str("<A-%s>", i), str("%sgt", i), { desc = str("Goto tab %s", i) })
vim.keymap.set("t", str("<A-%s>", i), str("<C-\\><C-n>%sgt", i), { desc = str("Goto tab %s", i) })
end
vim.keymap.set("n", "<A-n>", "<CMD>tabnew<CR>", { desc = "Create a new tab" })
vim.keymap.set("n", "<A-CR>", "<CMD>tabnew<CR><CMD>term<CR>i", { desc = "Create a new tab with a terminal" })
vim.keymap.set("n", "<A-q>", "<CMD>tabclose<CR>", { desc = "Close current tab" })
vim.keymap.set("n", "<A-0>", "<CMD>tablast<CR>", { desc = "Goto last tab" })
vim.keymap.set("n", "<A-]>", "<CMD>tabnext<CR>", { desc = "Goto next tab" })
vim.keymap.set("n", "<A-[>", "<CMD>tabprevious<CR>", { desc = "Goto prev tab" })
vim.keymap.set("n", "<A-->", "<CMD>tabm-<CR>", { desc = "Move tab to the left" })
vim.keymap.set("n", "<A-=>", "<CMD>tabm+<CR>", { desc = "Move tab to the right" })
vim.keymap.set("n", "<A-'>", "<CMD>tab split<CR>", { desc = "Clone window in new tab" })
vim.keymap.set("n", "<C-w><CR>", "<CMD>term<CR>i", { desc = "Terminal" })