1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
vim.g.mapleader = " "
local nv = {"n", "v"}
local function definepairs(replacement, char)
vim.keymap.set("o", "i" .. replacement, "i" .. char, {})
vim.keymap.set("o", "a" .. replacement, "a" .. char, {})
end
definepairs("b", "(")
definepairs("s", "\"")
definepairs("q", "'")
definepairs("t", "{")
definepairs("r", "[")
definepairs("a", "<")
vim.keymap.set(nv, "gm", "gM", {})
vim.keymap.set(nv, "gM", "gMi", {})
-- Moving between windows
vim.keymap.set(nv, "<C-h>", "<C-w>h", {})
vim.keymap.set(nv, "<C-j>", "<C-w>j", {})
vim.keymap.set(nv, "<C-k>", "<C-w>k", {})
vim.keymap.set(nv, "<C-l>", "<C-w>l", {})
-- Same, but for terminal
vim.keymap.set("t", "<C-h>", "<C-\\><C-n><C-w>h", {})
vim.keymap.set("t", "<C-t>", "<C-\\><C-n><C-w>j", {})
vim.keymap.set("t", "<C-n>", "<C-\\><C-n><C-w>k", {})
vim.keymap.set("t", "<C-s>", "<C-\\><C-n><C-w>l", {})
-- Moving windows
vim.keymap.set(nv, "<C-w>h", "<C-w>H", {})
vim.keymap.set(nv, "<C-w>j", "<C-w>J", {})
vim.keymap.set(nv, "<C-w>k", "<C-w>K", {})
vim.keymap.set(nv, "<C-w>l", "<C-w>L", {})
-- Resizing windows
vim.keymap.set(nv, "<C-->", "<C-w>-", {})
vim.keymap.set(nv, "<C-=>", "<C-w>+", {})
vim.keymap.set(nv, "<C-,>", "<C-w><", {})
vim.keymap.set(nv, "<C-.>", "<C-w>>", {})
-- Make exiting insert mode in terminal mode easier
vim.keymap.set("t", "<ESC>", "<C-\\><C-n>", {})
-- Center when moving around at high speeds
vim.keymap.set(nv, "<C-u>", "<C-u>zz", {})
vim.keymap.set(nv, "<C-d>", "<C-d>zz", {})
vim.keymap.set(nv, "G", "Gzz", {})
-- Delete line content. I didn't do ddO because that would extend comments if
-- you were just above one.
vim.keymap.set("n", "dc", "cc<ESC>", {})
-- Make going to the end of a line as easy as going to the beginning
vim.keymap.set({"n", "v", "o"}, "+", "$", {})
-- Allow yanking to system clipboard
vim.keymap.set(nv, "<leader>y", "\"+y", {})
vim.keymap.set(nv, "<leader>p", "\"+p", {})
-- Commands
vim.keymap.set(nv, "<leader>c", "<CMD>noh<CR>", {silent=true})
vim.keymap.set(nv, "<leader>e", "<CMD>Ex<CR>", {silent=true})
vim.keymap.set(nv, "<leader>t", function()
vim.cmd("split")
vim.cmd("term")
end, {silent=true})
-- Common typo with me
vim.api.nvim_create_user_command("W", "w", {bang=true})
vim.api.nvim_create_user_command("Wa", "wa", {bang=true})
vim.api.nvim_create_user_command("Wq", "wq", {bang=true})
vim.api.nvim_create_user_command("Wqa", "wqa", {bang=true})
vim.api.nvim_create_user_command("Q", "q", {bang=true})
vim.api.nvim_create_user_command("Qa", "qa", {bang=true})
|