Neovim Config
1-- Set <space> as the leader key
2vim.g.mapleader = " "
3vim.g.maplocalleader = " "
4
5-- Clear highlights on search when pressing <Esc> in normal mode
6-- See `:help hlsearch`
7vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
8
9-- Diagnostic keymaps
10vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })
11
12-- Open Explorer
13-- vim.keymap.set("n", "<leader>pv", vim.cmd.Ex, { desc = "Open explorer" })
14
15-- Move Selection
16vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move selection down" })
17vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move selection up" })
18
19-- Append Line
20vim.keymap.set("n", "J", "mzJ`z", { desc = "Append to line with a space" })
21
22-- Move Page Down
23vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Half-page jump down" })
24-- Move Page Up
25vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Half-page jump up" })
26
27-- Insert Line
28vim.keymap.set("n", "oo", "<Cmd>call append(line('.'), repeat([''], v:count1))<CR>", { desc = "Insert line below" })
29vim.keymap.set("n", "OO", "<Cmd>call append(line('.')-1, repeat([''], v:count1))<CR>", { desc = "Insert line above" })
30
31-- Search RegEx
32vim.keymap.set("n", "n", "nzzzv", { desc = "Search next" })
33vim.keymap.set("n", "N", "Nzzzv", { desc = "Search previous" })
34
35-- Replace Selection Without Losing buffer
36vim.keymap.set("x", "<leader>p", [["_dP]], { desc = "Replace selection" })
37
38-- System Clipboard Yank : asbjornHaland
39vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]], { desc = "Yank to system clipboard" })
40vim.keymap.set("n", "<leader>Y", [["+Y]], { desc = "Yank to system clipboard" })
41
42-- Delete to Void Register
43vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]], { desc = "Delete to void" })
44
45-- The Cancel Remap
46vim.keymap.set("i", "<C-c>", "<Esc>")
47
48-- Don't press Capital Q
49vim.keymap.set("n", "Q", "<nop>")
50
51-- Format
52vim.keymap.set("n", "<leader>f", vim.lsp.buf.format, { desc = "Format" })
53
54-- Quickfix
55vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz", { desc = "Quickfix next" })
56vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz", { desc = "Quickfix previous" })
57vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz", { desc = "Quickfix next" })
58vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz", { desc = "Quickfix previous" })
59
60-- Replace Highlight
61vim.keymap.set(
62 "n",
63 "<leader>s",
64 [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
65 { desc = "Refactor selection" }
66)
67
68-- Create Executable
69vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true, desc = "Make executable" })