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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-- lua/config/keymaps.lua
local keymap = vim.keymap.set
local opts = { noremap = true, silent = true }
-- Leader key
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- General keymaps
keymap("i", "jk", "<ESC>", opts)
keymap("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
keymap("n", "<leader>+", "<C-a>", { desc = "Increment number" })
keymap("n", "<leader>-", "<C-x>", { desc = "Decrement number" })
-- Window management
keymap("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" })
keymap("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" })
keymap("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" })
keymap("n", "<leader>sx", ":close<CR>", { desc = "Close current split" })
-- Navigate between splits
keymap("n", "<C-h>", "<C-w>h", { desc = "Navigate to left split" })
keymap("n", "<C-j>", "<C-w>j", { desc = "Navigate to bottom split" })
keymap("n", "<C-k>", "<C-w>k", { desc = "Navigate to top split" })
keymap("n", "<C-l>", "<C-w>l", { desc = "Navigate to right split" })
-- Resize splits
keymap("n", "<C-Up>", ":resize -2<CR>", opts)
keymap("n", "<C-Down>", ":resize +2<CR>", opts)
keymap("n", "<C-Left>", ":vertical resize -2<CR>", opts)
keymap("n", "<C-Right>", ":vertical resize +2<CR>", opts)
-- Tab management
keymap("n", "<leader>to", ":tabnew<CR>", { desc = "Open new tab" })
keymap("n", "<leader>tx", ":tabclose<CR>", { desc = "Close current tab" })
keymap("n", "<leader>tn", ":tabn<CR>", { desc = "Go to next tab" })
keymap("n", "<leader>tp", ":tabp<CR>", { desc = "Go to previous tab" })
keymap("n", "<leader>tf", ":tabnew %<CR>", { desc = "Open current buffer in new tab" })
-- Buffer management
keymap("n", "<leader>bn", ":bnext<CR>", { desc = "Next buffer" })
keymap("n", "<leader>bp", ":bprevious<CR>", { desc = "Previous buffer" })
keymap("n", "<leader>bd", ":bdelete<CR>", { desc = "Delete buffer" })
-- Better paste
keymap("v", "p", '"_dP', opts)
-- Move text up and down
keymap("v", "J", ":m '>+1<CR>gv=gv", opts)
keymap("v", "K", ":m '<-2<CR>gv=gv", opts)
-- Indent/outdent in visual mode
keymap("v", "<", "<gv", opts)
keymap("v", ">", ">gv", opts)
-- Better terminal navigation
keymap("t", "<C-h>", "<C-\\><C-N><C-w>h", opts)
keymap("t", "<C-j>", "<C-\\><C-N><C-w>j", opts)
keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", opts)
keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", opts)
-- File operations
keymap("n", "<leader>w", ":w<CR>", { desc = "Save file" })
keymap("n", "<leader>q", ":q<CR>", { desc = "Quit" })
keymap("n", "<leader>Q", ":qa!<CR>", { desc = "Force quit all" })
-- Quick fix list
keymap("n", "<leader>qo", ":copen<CR>", { desc = "Open quickfix list" })
keymap("n", "<leader>qf", ":cfirst<CR>", { desc = "First quickfix" })
keymap("n", "<leader>qn", ":cnext<CR>", { desc = "Next quickfix" })
keymap("n", "<leader>qp", ":cprev<CR>", { desc = "Previous quickfix" })
keymap("n", "<leader>ql", ":clast<CR>", { desc = "Last quickfix" })
keymap("n", "<leader>qc", ":cclose<CR>", { desc = "Close quickfix" })
|