mirror of
https://github.com/pnx/dotfiles
synced 2026-06-16 19:30:01 +02:00
52 lines
2.2 KiB
Lua
52 lines
2.2 KiB
Lua
--
|
|
-- Keymaps! Alot of stuff "borrowed" from thePrimeagen
|
|
--
|
|
local map = vim.keymap.set
|
|
local cmd = vim.cmd
|
|
|
|
vim.g.mapleader = " "
|
|
|
|
-- Make half page jumps stay in the center of screen
|
|
map("n", "<C-u>", "<C-u>zz", { silent = true, desc = "jump half a page up" })
|
|
map("n", "<C-d>", "<C-d>zz", { silent = true, desc = "jump half a page down" })
|
|
map("n", "<S-PageUp>", "<C-u>zz", { silent = true, desc = "jump half a page up" })
|
|
map("n", "<S-PageDown>", "<C-d>zz", { silent = true, desc = "jump half a page down" })
|
|
-- Make jump to next search item stay in the center of screen.
|
|
map("n", "n", "nzzzv", { silent = true, desc = "jump to next search match" })
|
|
map("n", "N", "Nzzzv", { silent = true, desc = "jump to previous search match" })
|
|
|
|
-- Ctrl+s saves the current buffer in normal/insert mode.
|
|
map({"n", "i"}, "<C-s>", cmd.w, { desc = "save current buffer" })
|
|
|
|
-- Move text
|
|
map("n", "<S-a>", ":m -2<CR>v=", { silent = true, desc = "move current line one line up" })
|
|
map("n", "<S-d>", ":m +1<CR>v=", { silent = true, desc = "move current line one line down" })
|
|
map("v", "<S-a>", ":m '<-2<CR>gv=gv", { silent = true, desc = "move current selection one line up" })
|
|
map("v", "<S-d>", ":m '>+1<CR>gv=gv", { silent = true, desc = "move current selection one line down" })
|
|
|
|
-- copy/paste
|
|
map("x", "<leader>p", [["_dP]], { silent = true, desc = "Paste over selected text without losing content in \"-register" })
|
|
map({"n", "v"}, "<leader>y", [["+y]], { desc = "Yank to system clipboard register" })
|
|
|
|
-- File operations
|
|
map("n", "<leader>fx", "<cmd>!chmod +x %<CR>", { silent = true, desc = "Set execute flag on current file" })
|
|
|
|
-- buffers
|
|
map("n", "<leader>bn", cmd.bn, { silent = true, desc = "Move to next buffer"})
|
|
map("n", "<leader>bb", cmd.bp, { silent = true, desc = "Move to previous buffer"})
|
|
map("n", "<leader>bd", cmd.bd, { silent = true, desc = "Close current buffer"})
|
|
|
|
-- Indent
|
|
map('n', "<Tab>", "^=$")
|
|
map('x', "<Tab>", "=", { desc = "auto indent selection" })
|
|
map("i", "<S-Tab>", "<C-d>", { desc = "delete indent" })
|
|
|
|
-- fix paste
|
|
map('n', "p", "p=$")
|
|
|
|
-- Crazy search+replace
|
|
map("n", "<leader>rw", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], {
|
|
desc = "search+replace word under cursor"
|
|
})
|
|
|
|
map("n", "Q", "<nop>")
|