lua/josean/core/keymaps.lua (1646B)
1 -- set leader key to space
2 vim.g.mapleader = " "
3
4 local keymap = vim.keymap -- for conciseness
5
6 ---------------------
7 -- General Keymaps -------------------
8
9 -- use jk to exit insert mode
10 keymap.set("i", "jk", "<ESC>", { desc = "Exit insert mode with jk" })
11
12 -- clear search highlights
13 keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
14
15 -- delete single character without copying into register
16 -- keymap.set("n", "x", '"_x')
17
18 -- increment/decrement numbers
19 keymap.set("n", "<leader>+", "<C-a>", { desc = "Increment number" }) -- increment
20 keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" }) -- decrement
21
22 -- window management
23 keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" }) -- split window vertically
24 keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" }) -- split window horizontally
25 keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" }) -- make split windows equal width & height
26 keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" }) -- close current split window
27
28 keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" }) -- open new tab
29 keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" }) -- close current tab
30 keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" }) -- go to next tab
31 keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" }) -- go to previous tab
32 keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" }) -- move current buffer to new tab