Initial commit
This commit is contained in:
77
lua/core/keymaps.lua
Normal file
77
lua/core/keymaps.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
-- Set leader key
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Disable the spacebar key's default behavior in Normal and Visual modes
|
||||
vim.keymap.set({ "n", "v" }, "<Space>", "<Nop>", { silent = true })
|
||||
|
||||
-- For conciseness
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
-- save file without auto-formatting
|
||||
vim.keymap.set("n", "<C-s>", "<cmd>noautocmd w <CR>", opts)
|
||||
|
||||
-- quit file
|
||||
vim.keymap.set("n", "<C-q>", "<cmd> q <CR>", opts)
|
||||
|
||||
-- delete single character without copying into register
|
||||
vim.keymap.set("n", "x", '"_x', opts)
|
||||
|
||||
-- Vertical scroll and center
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz", opts)
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz", opts)
|
||||
vim.keymap.set("n", "<S-g>", "<S-g>zz", opts)
|
||||
|
||||
-- Find and center
|
||||
vim.keymap.set("n", "n", "nzzzv", opts)
|
||||
vim.keymap.set("n", "N", "Nzzzv", opts)
|
||||
|
||||
-- Resize with arrows
|
||||
vim.keymap.set("n", "k", ":resize -2<CR>", opts)
|
||||
vim.keymap.set("n", "j", ":resize +2<CR>", opts)
|
||||
vim.keymap.set("n", "h", ":vertical resize -2<CR>", opts)
|
||||
vim.keymap.set("n", "l", ":vertical resize +2<CR>", opts)
|
||||
|
||||
-- Buffers
|
||||
vim.keymap.set("n", "<Tab>", ":bnext<CR>", opts)
|
||||
vim.keymap.set("n", "<S-Tab>", ":bprevious<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>q", ":bdelete!<CR>:bnext<CR>", opts) -- close buffer
|
||||
vim.keymap.set("n", "<leader>b", "<cmd> enew <CR>", opts) -- new buffer
|
||||
|
||||
-- Window management
|
||||
vim.keymap.set("n", "<leader>v", "<C-w>v", opts) -- split window vertically
|
||||
vim.keymap.set("n", "<leader>h", "<C-w>s", opts) -- split window horizontally
|
||||
vim.keymap.set("n", "<leader>se", "<C-w>=", opts) -- make split windows equal width & height
|
||||
vim.keymap.set("n", "<leader>xs", ":close<CR>", opts) -- close current split window
|
||||
|
||||
-- Navigate between splits
|
||||
vim.keymap.set("n", "<C-Up>", ":wincmd k<CR>", opts)
|
||||
vim.keymap.set("n", "<C-Down>", ":wincmd j<CR>", opts)
|
||||
vim.keymap.set("n", "<C-Left>", ":wincmd h<CR>", opts)
|
||||
vim.keymap.set("n", "<C-Right>", ":wincmd l<CR>", opts)
|
||||
|
||||
-- Tabs
|
||||
vim.keymap.set("n", "<leader>to", ":tabnew<CR>", opts) -- open new tab
|
||||
vim.keymap.set("n", "<leader>tx", ":tabclose<CR>", opts) -- close current tab
|
||||
vim.keymap.set("n", "<leader>tn", ":tabn<CR>", opts) -- go to next tab
|
||||
vim.keymap.set("n", "<leader>tp", ":tabp<CR>", opts) -- go to previous tab
|
||||
|
||||
-- Toggle line wrapping
|
||||
vim.keymap.set("n", "<leader>lw", "<cmd>set wrap!<CR>", opts)
|
||||
|
||||
-- Stay in indent mode
|
||||
vim.keymap.set("v", "<", "<gv", opts)
|
||||
vim.keymap.set("v", ">", ">gv", opts)
|
||||
|
||||
-- Keep last yanked when pasting
|
||||
vim.keymap.set("v", "p", '"_dP', opts)
|
||||
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous diagnostic message" })
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next diagnostic message" })
|
||||
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, { desc = "Open floating diagnostic message" })
|
||||
-- vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' })
|
||||
|
||||
-- Move lines
|
||||
vim.keymap.set("n", "<C-Up>", ":m -2<CR>", opts)
|
||||
vim.keymap.set("n", "<C-Down>", ":m +1<CR>", opts)
|
Reference in New Issue
Block a user