A very fast neovim config :D
1-- ctrl + c for exiting insert mode
2vim.keymap.set("i", "<C-c>", "<esc>", { desc = "Exit insert mode" })
3-- Essential
4vim.keymap.set({ "n", "v" }, "<leader>w", "<cmd>bd<cr>", { desc = "Quit buffer" })
5
6-- Normal Mapkey
7vim.keymap.set("n", "<TAB>", "<cmd>bnext<CR>", { desc = "Next buffer" })
8vim.keymap.set("n", "<S-TAB>", ":bprev<CR>", { desc = "Previous buffer" })
9vim.keymap.set("n", "<M-h>", ":split<CR>", { desc = "Horizonal split" })
10vim.keymap.set("n", "<M-v>", ":vs<CR>", { desc = "Vertical split" })
11vim.keymap.set("n", "<C-a>", "ggVG<CR>", { desc = "Select all" })
12
13-- Move lines
14vim.keymap.set("n", "<C-M-j>", ":m .+1<CR>==", { desc = "Move down" })
15vim.keymap.set("i", "<C-M-j>", "<Esc>:m .+1<cr>==gi", { desc = "Move down" })
16vim.keymap.set("v", "J", ":m '>+1<cr>gv=gv", { desc = "Move down" })
17
18vim.keymap.set("n", "<C-M-k>", ":m .-2<cr>==", { desc = "Move up" })
19vim.keymap.set("i", "<C-M-k>", "<Esc>:m .-2<cr>==gi", { desc = "Move up" })
20vim.keymap.set("v", "K", ":m '<-2<cr>gv=gv", { desc = "Move up" })
21
22-- Terminal
23vim.keymap.set("n", "<leader>v", ":vs +terminal | startinsert<CR>", { desc = "Vertical terminal" })
24vim.keymap.set("n", "<leader>h", ":split +terminal | startinsert<CR>", { desc = "Horizontal terminal" })
25
26-- save file
27vim.keymap.set({ "i", "v", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
28
29-- Insert Map
30vim.keymap.set("i", "<C-E>", "<End>", { desc = "End of line" })
31vim.keymap.set("i", "<C-A>", "<Home>", { desc = "Beginning of line" })
32
33-- next greatest remap ever : asbjornHaland
34vim.keymap.set({ "n", "v" }, "<leader>y", '"+y', { desc = "Copy to clipboard" })
35vim.keymap.set({ "n", "v" }, "<leader>Y", '"+Y', { desc = "Copy line to clipboard" })
36
37vim.keymap.set({ "n", "v" }, "<leader>d", '"_d', { desc = "Delete to void" })
38
39-- Replace Map
40vim.keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>", { desc = "Replace word" })
41
42-- Clear search results
43vim.keymap.set("n", "<esc>", "<cmd>noh<CR>")
44
45-- Better indenting
46vim.keymap.set("v", "<", "<gv")
47vim.keymap.set("v", ">", ">gv")
48
49-- better comment
50vim.keymap.set("n", "<leader>/", "<Plug>(comment_toggle_linewise_current)")
51vim.keymap.set("v", "<leader>/", "<Plug>(comment_toggle_linewise_visual)")
52
53-- toggles
54
55local utils = require("utils")
56
57vim.keymap.set("n", "<leader>tw", function()
58 utils.toggle("wrap")
59end, { desc = "Toggle Word Wrap" })
60
61vim.keymap.set("n", "<leader>ts", function()
62 utils.toggle("spell")
63end, { desc = "Toggle Spelling" })
64
65vim.keymap.set("n", "<leader>tl", function()
66 utils.toggle("relativenumber")
67end, { desc = "Toggle Line Numbers" })
68
69vim.keymap.set("n", "<leader>tc", function()
70 utils.set_colorcolumn()
71end, { desc = "toggle colorcolumn" })
72
73vim.keymap.set("n", "<leader>td", utils.toggle_diagnostics, { desc = "Toggle Diagnostics" })