irongit

My nvim configuration

hygo-nvim/lua/keymaps.lua
148 lines6.9 KBLua
1local function easymap(mode, lhs, rhs, desc)
2 vim.keymap.set(mode, lhs, rhs, { desc = desc })
3end
4
5-- Remove some bogus default keymaps
6vim.keymap.set({ "n", "v", "i" }, "<F1>", "")
7
8-- ########################################################################## --
9-- -Leader
10-- ########################################################################## --
11easymap("n", "<leader>o", "o<esc>cc", "New Line, No Comment")
12easymap("n", "<leader>O", "O<esc>cc", "New Line, No Comment")
13easymap("n", "<leader>k", ":SafeBD<cr>", "Close Buffer")
14easymap("n", "<leader>q", ":silent! wa! | silent! qa!<cr>", "Quit")
15easymap("n", "<leader>;", "q:", "Elite Cmd")
16easymap("n", "<leader>f", ":Format<cr>", "Format")
17easymap("n", "<leader>h", ":nohl<cr>", "Remove Highlights")
18easymap("n", "<leader>p", ":Telescope registers<cr>", "Registers")
19easymap("n", "<leader><Space>", ":Telescope find_files<cr>", "Files")
20easymap("n", "<leader>,", ":Telescope current_folder<cr>", "Search Current Folder")
21easymap("n", "<leader>m", ':exe "resize ".float2nr(&lines*0.8)<cr>', "80% Window")
22-- easymap("n", "<leader>s", ":Scratch<cr>", "Scratch")
23easymap("n", "<leader>.", ":Telescope all_files<cr>", "All Files")
24easymap("n", "gri", function()
25 vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ 0 }), { 0 })
26end, "Toggle Inlay Hints")
27easymap("n", "<leader>lt", function()
28 local on = vim.g.blink_cmp_enabled ~= false
29 vim.g.blink_cmp_enabled = not on
30 vim.notify("blink.cmp " .. (vim.g.blink_cmp_enabled and "on" or "off"))
31end, "Toggle Completion")
32for i = 1, 9 do
33 easymap("n", "<leader>" .. i, i .. "gt", "Tab " .. i)
34end
35
36--- Buffer
37easymap("n", "<leader>b", "Buffers")
38easymap("n", "<leader>b,", ":Telescope buffers<cr>", "Telescope Buffers")
39easymap("n", "<leader>bb", ":e #<cr>", "Last Buffer")
40
41-- ########################################################################## --
42-- -Built in Lsp
43-- ########################################################################## --
44vim.keymap.set("n", "<leader>l", "", { desc = "LSP" })
45vim.keymap.set("n", "<leader>lr", ":LspRestart<cr>", { desc = "Restart" })
46vim.keymap.set("n", "<leader>lm", ":Mason<cr>", { desc = "Mason" })
47vim.keymap.set("n", "<leader>ls", ":Telescope lsp_document_symbols<cr>", { desc = "Document Symbols" })
48vim.keymap.set("n", "<leader>lw", ":Telescope lsp_workspace_symbols<cr>", { desc = "Workspace Symbols" })
49vim.keymap.set("n", "<leader>lc", function()
50 vim.cmd([[
51 if empty(filter(getwininfo(), 'v:val.quickfix'))
52 copen
53 else
54 cclose
55 endif
56 ]])
57end, { desc = "Toggle Quickfix" })
58vim.keymap.set("n", "<leader>le", function()
59 vim.diagnostic.setqflist({ severity = vim.diagnostic.severity.ERROR })
60end, { desc = "Quickfix All Errors" })
61vim.keymap.set("n", "<leader>ld", function()
62 vim.diagnostic.setqflist()
63end, { desc = "Quickfix All Diagnostics" })
64vim.keymap.set("n", "<leader>lb", function()
65 local diagnostics = vim.diagnostic.get(0)
66 local qflist = vim.diagnostic.toqflist(diagnostics)
67 vim.fn.setqflist(qflist, "r")
68 if #diagnostics == 0 then
69 vim.cmd("cclose")
70 return
71 end
72 vim.cmd("copen")
73end, { desc = "Quickfix Buf Diagnostics" })
74
75-- ########################################################################## --
76-- -Visual Mode Leaders
77-- ########################################################################## --
78easymap("v", "<leader>s", ":s/\\%V[A-Z]/_\\L&/g | nohl <cr>", "snake_case")
79easymap("v", "<leader>c", ":s/\\%V_\\(\\w\\)/\\U\\1/g | nohl <cr>", "camelCase")
80easymap("v", "<leader>n", ":g/^ *$/d | nohl <cr>", "Remove Blank Lines")
81
82-- ########################################################################## --
83-- -Diagnostics
84-- ########################################################################## --
85easymap("n", "<leader>da", ":Telescope diagnostics<cr>", "All Diagnostics")
86easymap("n", "<leader>de", ":Telescope diagnostics severity=error<cr>", "Error Diagnostics")
87
88-- ########################################################################## --
89-- -Telescope
90-- ########################################################################## --
91easymap("n", "<leader>t", "", "Telescope")
92easymap("n", "<leader>ts", ":Telescope treesitter<cr>", "Treesitter")
93
94-- ########################################################################## --
95-- -Folding
96-- ########################################################################## --
97easymap("n", "<leader>z", "", "Fold")
98easymap("n", "<leader>zt", ":TreeSitterFold<cr>", "Treesitter")
99easymap("n", "<leader>zi", ":IndentFold<cr>", "Indent")
100easymap("n", "<leader>zs", ":SyntaxFold<cr>", "Syntax")
101
102-- ########################################################################## --
103-- -Windows
104-- ########################################################################## --
105easymap({ "i", "n" }, "<C-h>", "<C-w>h")
106easymap({ "i", "n" }, "<C-j>", "<C-w>j")
107easymap({ "i", "n" }, "<C-k>", "<C-w>k")
108easymap({ "i", "n" }, "<C-l>", "<C-w>l")
109easymap({ "i", "n" }, "<C-left>", "<C-w>h")
110easymap({ "i", "n" }, "<C-down>", "<C-w>j")
111easymap({ "i", "n" }, "<C-up>", "<C-w>k")
112easymap({ "i", "n" }, "<C-right>", "<C-w>l")
113vim.keymap.set("n", "<C-S-Left>", ":vertical resize -2<CR>")
114vim.keymap.set("n", "<C-S-Right>", ":vertical resize +2<CR>")
115vim.keymap.set("n", "<C-S-Down>", ":resize -2<CR>")
116vim.keymap.set("n", "<C-S-Up>", ":resize +2<CR>")
117
118-- ########################################################################## --
119-- -Gotos
120-- ########################################################################## --
121easymap("n", "gd", vim.lsp.buf.definition, "Goto Definition")
122easymap("n", "gD", vim.lsp.buf.type_definition, "Goto Type Definition")
123easymap({ "n", "v" }, "gy", '"+y', "System Clipboard Copy")
124easymap({ "n", "v" }, "gp", '"+p', "System Clipboard Paste")
125easymap("n", "gs", "<cmd>EditCurrentFiletype<cr>", "Filetype Settings")
126easymap("n", "gm", "q:?make<cr><cr>", "Last Make")
127easymap("n", "g;", "m'A;<esc>`'", "Append Colon")
128easymap("n", "g,", "m'A,<esc>`'", "Append Comma")
129easymap("n", "gl", "", "LSP")
130easymap("n", "glt", ":ToggleDiagnostics<cr>", "Toggle")
131vim.keymap.set("n", "gc", require("telescope.builtin").grep_string, { desc= "Telescope word"})
132
133-- ########################################################################## --
134-- Surroundings
135-- ########################################################################## --
136vim.keymap.set({ "x", "o" }, "ae", ":<C-u>normal! ggVG<CR>", { desc = "around entire buffer" })
137
138-- ########################################################################## --
139-- -Visual Line Motion (respect wrap)
140-- ########################################################################## --
141vim.keymap.set({ "n", "v" }, "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
142vim.keymap.set({ "n", "v" }, "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
143
144-- Extras
145easymap({ "i", "n" }, "<C-s>", "<cmd>w<cr>", "Save")
146easymap({ "i", "n" }, "<C-p>", vim.diagnostic.open_float, "Open Diagnostic Float")
147-- easymap("n", ";", "A;", "Add ; to the end")
148-- easymap("n", ",", "A,", "Add , to the end")