240 lines
11 KiB
Lua
Executable file
240 lines
11 KiB
Lua
Executable file
-- local wk = require("which-key")
|
|
--
|
|
-- local keys = {
|
|
-- e = {
|
|
-- name = "Toggle",
|
|
-- e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
|
|
-- w = {vim.cmd.Ex, "netrw"},
|
|
-- s = {"<cmd>NeoTreeShowToggle<CR>", "neotree sidebar"},
|
|
-- g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
|
|
-- -- b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
|
|
-- c = {"<cmd>NeoTreeClose<CR>" , "Close"},
|
|
-- u = {vim.cmd.UndotreeToggle, "UndoTree"},
|
|
-- },
|
|
-- c = {
|
|
-- name = "LSP",
|
|
-- f = {function () vim.lsp.buf.format() end, "Format"},
|
|
-- w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
|
|
-- d = {function () vim.diagnostic.open_float() end, "diagnostic"},
|
|
-- a = {function () vim.lsp.buf.code_action() end, "code actions"},
|
|
-- R = {function () vim.lsp.buf.references() end, "references"},
|
|
-- r = {function () vim.lsp.buf.rename() end, "rename"},
|
|
-- h = {function () vim.lsp.buf.hover() end, "Hover"},
|
|
-- t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
|
|
-- s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
|
|
-- S = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
|
|
-- l = {
|
|
-- name = "LSP",
|
|
-- k = {"<cmd>LspStop<cr>", "Stop"},
|
|
-- s = {"<cmd>LspStart<cr>", "Start"},
|
|
-- r = {"<cmd>LspRestart<cr>", "Restart"},
|
|
-- },
|
|
-- },
|
|
-- b = {
|
|
-- name = "Buffer",
|
|
-- h = {vim.cmd.bprevious, "Previous"},
|
|
-- l = {vim.cmd.bnext, "Next"},
|
|
-- H = {vim.cmd.bfirst, "First"},
|
|
-- L = {vim.cmd.blast, "Last"},
|
|
-- b = {require("telescope.builtin").buffers, "Picker"},
|
|
-- c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
|
|
-- C = {"<cmd>:bp | sp | bn | bd!<cr>", "Close Force"},
|
|
-- d = {function() vim.cmd("bd") end, "Delete buffer"},
|
|
-- D = {function() vim.cmd("bd!") end, "Delete buffer Force"},
|
|
-- o = {function() vim.cmd("BDelete other") end, "Delete other buffers"},
|
|
-- m = {function() vim.cmd("BDelete select") end, "Select buffer to delete"},
|
|
-- },
|
|
-- f = {
|
|
-- name = "Telescope & fzf",
|
|
-- c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
|
|
-- d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
|
|
-- w = {require("telescope.builtin").grep_string, "Find current Word"},
|
|
-- f = {require("telescope.builtin").find_files, "telescope find files"},
|
|
-- g = {require("telescope.builtin").live_grep, "live grep"},
|
|
-- b = {require("telescope.builtin").buffers, "buffers"},
|
|
-- h = {require("telescope.builtin").help_tags, "help tags"},
|
|
-- s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
|
|
-- m = {"<cmd>Maket<cr>", "Make"},
|
|
-- },
|
|
-- s = {
|
|
-- name = "Settings",
|
|
-- c = {function ()
|
|
-- vim.opt.scrolloff = 100
|
|
-- end, "Always center cursor"},
|
|
-- C = {function ()
|
|
-- vim.opt.scrolloff = 8
|
|
-- end, "Disable Cursor center"},
|
|
-- f = {function ()
|
|
-- vim.opt.nu = true
|
|
-- vim.opt.relativenumber = true
|
|
-- end, "Fix number and relative numbers"},
|
|
-- },
|
|
-- h = {
|
|
-- name = "Hop",
|
|
-- w = {"<cmd>HopWord<cr>", "Word"},
|
|
-- a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
|
|
-- l = {"<cmd>HopLine<cr>", "Line"},
|
|
-- p = {"<cmd>HopPattern<cr>", "Pattern"},
|
|
-- c = {"<cmd>HopChar1<cr>", "Char1"},
|
|
-- x = {"<cmd>HopChar2<cr>", "Char2"},
|
|
-- h = {vim.cmd.HopChar2, "Hop"},
|
|
-- },
|
|
-- d = {
|
|
-- name = "Debug",
|
|
-- b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
|
|
-- c = {function () require("dap").continue() end, "launch or continue execution"},
|
|
-- s = {function () require("dap").step_into() end, "step into"},
|
|
-- o = {function () require("dap").step_over() end, "step over"},
|
|
-- r = {function () require("dap").repl.open() end, "open repl"},
|
|
-- w = {"<cmd>DapUIFloat<cr>", "DapUI"},
|
|
-- },
|
|
-- w = {
|
|
-- name = "workspace",
|
|
-- a = {vim.lsp.buf.add_workspace_folder, "add folder"},
|
|
-- r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
|
|
-- l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
|
|
-- },
|
|
-- q = {
|
|
-- name = "Quick nav",
|
|
-- q = {require("harpoon.ui").toggle_quick_menu, "Menu"},
|
|
-- a = {function () require("harpoon"):list():append() end, "Add file"},
|
|
-- r = {function () require("harpoon"):list():remove() end, "Remove File"},
|
|
-- },
|
|
--
|
|
-- }
|
|
--
|
|
-- wk.register(keys, {prefix = "<leader>"})
|
|
-- wk.register(keys, {prefix = "<C-Space>"})
|
|
-- wk.register(keys, {prefix = "<C-Space>", mode = "i"})
|
|
-- wk.register(keys, {prefix = "<C-Space>", mode = "v"})
|
|
|
|
local keys = {
|
|
{ "bC", "<cmd>:bp | sp | bn | bd!<cr>", desc = "Close Force" },
|
|
{ "bD", function() vim.cmd("bd!") end, desc = "Delete buffer Force" },
|
|
{ "bH", vim.cmd.bfirst, desc = "First" },
|
|
{ "bL", vim.cmd.blast, desc = "Last" },
|
|
{ "bb", require("telescope.builtin").buffers, desc = "Picker" },
|
|
{ "bc", "<cmd>:bp | sp | bn | bd<cr>", desc = "Close" },
|
|
{ "bd", vim.cmd.bd, desc = "Delete buffer" },
|
|
{ "bh", vim.cmd.bprevious, desc = "Previous" },
|
|
{ "bl", vim.cmd.bnext, desc = "Next" },
|
|
{ "bm", function() vim.cmd("BDelete select") end, desc = "Select buffer to delete" },
|
|
{ "bo", function() vim.cmd("BDelete other") end, desc = "Delete other buffers" },
|
|
|
|
{ "cR", vim.lsp.buf.references, desc = "references" },
|
|
{ "cS", require("telescope.builtin").lsp_document_symbols, desc = "Document Symbols" },
|
|
{ "ca", vim.lsp.buf.code_action, desc = "code actions" },
|
|
{ "cd", vim.diagnostic.open_float, desc = "diagnostic" },
|
|
{ "cf", vim.lsp.buf.format, desc = "Format" },
|
|
{ "ch", vim.lsp.buf.hover, desc = "Hover" },
|
|
|
|
{ "clk", "<cmd>LspStop<cr>", desc = "Stop" },
|
|
{ "clr", "<cmd>LspRestart<cr>", desc = "Restart" },
|
|
{ "cls", "<cmd>LspStart<cr>", desc = "Start" },
|
|
{ "cr", vim.lsp.buf.rename, desc = "rename" },
|
|
{ "cs", "<cmd>Navbuddy<cr>", desc = "Navbuddy" },
|
|
{ "ct", vim.lsp.buf.type_definition, desc = "Type Definition" },
|
|
{ "cw", function() vim.lsp.buf.workspace_symbol("") end, desc = "workspace symbol" },
|
|
|
|
{ "db", require("dap").toggle_breakpoint, desc = "toggle breakpoint" },
|
|
{ "dc", require("dap").continue, desc = "launch or continue execution" },
|
|
{ "do", require("dap").step_over, desc = "step over" },
|
|
{ "dr", require("dap").repl.open, desc = "open repl" },
|
|
{ "ds", require("dap").step_into, desc = "step into" },
|
|
{ "dw", "<cmd>DapUIFloat<cr>", desc = "DapUI" },
|
|
|
|
{ "ec", "<cmd>NeoTreeClose<CR>", desc = "Close" },
|
|
{ "ee", "<cmd>NeoTreeFloatToggle<CR>", desc = "NeoTree" },
|
|
{ "eg", "<cmd>NeoTreeFloatToggle git_status<CR>", desc = "Git Status" },
|
|
{ "es", "<cmd>NeoTreeShowToggle<CR>", desc = "neotree sidebar" },
|
|
{ "eu", vim.cmd.UndotreeToggle, desc = "UndoTree" },
|
|
{ "ew", vim.cmd.Ex, desc = "netrw" },
|
|
|
|
{ "fb", require("telescope.builtin").buffers, desc = "buffers" },
|
|
{ "fc", require("telescope.builtin").colorscheme, desc = "Find Colorscheme" },
|
|
{ "fd", require("telescope.builtin").diagnostics, desc = "Find Diagnostics" },
|
|
{ "ff", require("telescope.builtin").find_files, desc = "telescope find files" },
|
|
{ "fg", require("telescope.builtin").live_grep, desc = "live grep" },
|
|
{ "fh", require("telescope.builtin").help_tags, desc = "help tags" },
|
|
{ "fm", "<cmd>Maket<cr>", desc = "Make"},
|
|
{ "fs", function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, desc = "grep search through files" },
|
|
{ "fw", require("telescope.builtin").grep_string, desc = "Find current Word" },
|
|
|
|
{ "ha", "<cmd>HopAnywhere<cr>", desc = "Anywhere" },
|
|
{ "hc", "<cmd>HopChar1<cr>", desc = "Char1" },
|
|
{ "hh", vim.cmd.HopChar2, desc = "Hop" },
|
|
{ "hl", "<cmd>HopLine<cr>", desc = "Line" },
|
|
{ "hp", "<cmd>HopPattern<cr>", desc = "Pattern" },
|
|
{ "hw", "<cmd>HopWord<cr>", desc = "Word" },
|
|
{ "hx", "<cmd>HopChar2<cr>", desc = "Char2" },
|
|
|
|
{ "qa", function () require("harpoon"):list():append() end, desc = "Add file" },
|
|
{ "qq", require("harpoon.ui").toggle_quick_menu, desc = "Menu" },
|
|
{ "qr", function() require("harpoon"):list():remove() end, desc = "Remove File" },
|
|
|
|
{ "sC", function() vim.opt.scrolloff = 8 end, desc = "Disable Cursor center" },
|
|
{ "sc", function() vim.opt.scrolloff = 100 end, desc = "Always center cursor" },
|
|
{ "sf", function() vim.opt.nu = true; vim.opt.relativenumber = true end, desc = "Fix number and relative numbers" },
|
|
|
|
{ "wa", vim.lsp.buf.add_workspace_folder, desc = "add folder" },
|
|
{ "wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, desc = "list folders" },
|
|
{ "wr", vim.lsp.buf.remove_workspace_folder, desc = "remove folder" },
|
|
}
|
|
|
|
for i, key in ipairs(keys) do
|
|
vim.keymap.set("n", "<leader>" .. key[1], key[2], {desc = key["desc"]})
|
|
vim.keymap.set("n", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
|
|
vim.keymap.set("i", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
|
|
vim.keymap.set("v", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
|
|
end
|
|
|
|
-- LSP
|
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"})
|
|
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
|
|
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {desc = "goto next"})
|
|
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {desc = "goto prev"})
|
|
vim.keymap.set("i", "<C-s>", function() vim.lsp.buf.signature_help() end)
|
|
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {})
|
|
|
|
-- term
|
|
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
|
|
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
|
|
vim.keymap.set("v", "<C-\\>", vim.cmd.ToggleTerm)
|
|
|
|
-- center
|
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
|
vim.keymap.set("n", "n", "nzzzv")
|
|
vim.keymap.set("n", "N", "Nzzzv")
|
|
|
|
-- visual move
|
|
vim.keymap.set("x", "K", ":move '<-2<CR>gv=gv")
|
|
vim.keymap.set("x", "J", ":move '>+1<CR>gv=gv")
|
|
|
|
-- me lazy
|
|
vim.keymap.set("i", "<C-c>", "<Esc>")
|
|
|
|
|
|
-- non char keybinds
|
|
vim.keymap.set("n", "<leader>f/", function ()
|
|
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
|
winblend = 10,
|
|
previewer = false,
|
|
})
|
|
end, {desc = "fuzzy find"})
|
|
vim.keymap.set('n', '<leader>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
|
|
|
|
vim.keymap.set("i", "<C-Space>f/", function ()
|
|
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
|
winblend = 10,
|
|
previewer = false,
|
|
})
|
|
end, {desc = "fuzzy find"})
|
|
vim.keymap.set('i', '<C-Space>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
|
|
|
|
for i = 9, 1, -1 do
|
|
vim.keymap.set("n", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
|
|
vim.keymap.set("i", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
|
|
vim.keymap.set("v", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
|
|
end
|
|
|