aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config/nvim/lua/tobyvin/keymaps.lua
blob: dd28753915d217d98df05c6600a0b411d9964e58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
local utils = require("tobyvin.utils")
local M = {}

M.training_wheels = function()
	vim.notify("You did the thing. Stop doing the thing. Use <C-[>", vim.log.levels.WARN, { title = "STOP DOING THAT" })
end

M.setup = function()
	for i = 1, 99, 1 do
		local lhs = string.format("%sgb", i)
		local desc = string.format("buffer %s", i)
		local rhs = string.format("<cmd>%sb<cr>", i)
		vim.keymap.set("n", lhs, rhs, { desc = desc })
	end
	vim.keymap.set("", "<esc>", ":noh<esc>", { silent = true, desc = "clear search" })

	vim.keymap.set("n", "gn", "<cmd>bnext<cr>", { desc = "bnext" })
	vim.keymap.set("n", "gp", "<cmd>bprev<cr>", { desc = "bprev" })
	vim.keymap.set("n", "gb", utils.buffer.bselect, { desc = "bselect" })
	vim.keymap.set("n", "gk", utils.documentation.open, { desc = "Documentation" })

	vim.keymap.set("n", "<leader>q", "<cmd>qall<cr>", { desc = "quit" })
	vim.keymap.set("n", "<leader>c", utils.buffer.bdelete, { desc = "bdelete" })
	vim.keymap.set("n", "<leader>x", "<cmd>close<cr>", { desc = "close" })
	vim.keymap.set("n", "<leader>z", "<cmd>tabclose<cr>", { desc = "tabclose" })
	vim.keymap.set("n", "<leader>w", "<cmd>write<cr>", { desc = "write" })

	vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Up half page and center" })
	vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Down half page and center" })
	vim.keymap.set("n", "<a-j>", "<CMD>m +1<CR>", { desc = "Move line down" })
	vim.keymap.set("n", "<a-k>", "<CMD>m -2<CR>", { desc = "Move line up" })
	vim.keymap.set("v", "<a-k>", "<CMD>m '<-2<CR>gv=gv", { desc = "Move selection up" })
	vim.keymap.set("v", "<a-j>", "<CMD>m '>+1<CR>gv=gv", { desc = "Move selection down" })
	vim.keymap.set("i", "<C-c>", M.training_wheels, { desc = "Helper to quit using <C-c>" })
end

return M