140 lines
6 KiB
Lua
Executable file
140 lines
6 KiB
Lua
Executable file
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
local wk = require("which-key")
|
|
|
|
wk.register({
|
|
e = {
|
|
name = "file explorers",
|
|
e = {vim.cmd.NvimTreeOpen, "NvimTree"},
|
|
r = {vim.cmd.NERDTreeTabsOpen, "NERDTree"},
|
|
w = {vim.cmd.Ex, "netrw"},
|
|
},
|
|
t = {
|
|
name = "Tabs",
|
|
n = {vim.cmd.tabedit, "New"},
|
|
c = {vim.cmd.tabclose, "Close"},
|
|
l = {vim.cmd.tabnext, "Next"},
|
|
h = {vim.cmd.tabprevious, "Previous"},
|
|
t = {"<cmd>tabedit ", "Open File"},
|
|
},
|
|
w = {
|
|
name = "workspace",
|
|
w = {"<cmd>w<cr>", "Write"}
|
|
},
|
|
v = {
|
|
name = "LSP"
|
|
},
|
|
q = {
|
|
name = "Quit",
|
|
q = {"<cmd>q!<cr>", "Confirm"},
|
|
},
|
|
u = {"vim.cmd.UndotreeToggle", "UndoTree"},
|
|
b = {
|
|
name = "Buffer",
|
|
h = {"<Cmd>BufferPrevious<CR>", "Previous"},
|
|
l = {"<Cmd>BufferNext<CR>", "Next"},
|
|
H = {"<Cmd>BufferFirst<CR>", "First"},
|
|
L = {"<Cmd>BufferLast<CR>", "Last"},
|
|
p = {"<Cmd>BufferPin<CR>", "Pin"},
|
|
b = {"<cmd>BufferPick<cr>", "Picker"},
|
|
s = {
|
|
name = "Sort",
|
|
n = {"<Cmd>BufferOrderByBufferNumber<CR>", "By BufferNumber"},
|
|
d = {"<Cmd>BufferOrderByDirectory<CR>", "By Directory"},
|
|
l = {"<Cmd>BufferOrderByLanguage<CR>", "By Language"},
|
|
w = {"<Cmd>BufferOrderByWindowNumber<CR>", "By WindowNumber"},
|
|
},
|
|
C = {"<Cmd>BufferClose<CR>", "Close"},
|
|
c = {
|
|
c = {"<Cmd>BufferClose<CR>", "Close"},
|
|
w = {"<cmd>BufferWipeout<cr>", "Wipe"},
|
|
a = {"<cmd>BufferCloseAllButCurrent<cr>", "Close but Current"},
|
|
p = {"<cmd>BufferCloseAllButPinned<cr>", "Close but Pinned"},
|
|
},
|
|
},
|
|
f = {
|
|
name = "Telescope & fzf",
|
|
},
|
|
s = {
|
|
name = "Settings",
|
|
c = {function ()
|
|
vim.opt.scrolloff = 100
|
|
end, "Always center cursor"},
|
|
x = {function ()
|
|
vim.opt.scrolloff = 8
|
|
end, "Disable Cursor center"}
|
|
},
|
|
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"},
|
|
},
|
|
d = {
|
|
name = "Debug"
|
|
},
|
|
r = {
|
|
name = "Rust",
|
|
},
|
|
}, {prefix = "<leader>"})
|
|
|
|
-- Buffers
|
|
vim.keymap.set("n", "<leader>b<", "<Cmd>BufferMovePrevious<CR>", { desc = "move previous" })
|
|
vim.keymap.set("n", "<leader>b>", "<Cmd>BufferMoveNext<CR>", { desc = "move next" })
|
|
vim.keymap.set("n", "<leader>bH", "<Cmd>BufferFirst<CR>", { desc = "first" })
|
|
vim.keymap.set("n", "<leader>bs1", "<Cmd>BufferGoto 1<CR>", { desc = "1" })
|
|
vim.keymap.set("n", "<leader>bs2", "<Cmd>BufferGoto 2<CR>", { desc = "2" })
|
|
vim.keymap.set("n", "<leader>bs3", "<Cmd>BufferGoto 3<CR>", { desc = "3" })
|
|
vim.keymap.set("n", "<leader>bs4", "<Cmd>BufferGoto 4<CR>", { desc = "4" })
|
|
vim.keymap.set("n", "<leader>bs5", "<Cmd>BufferGoto 5<CR>", { desc = "5" })
|
|
vim.keymap.set("n", "<leader>bs6", "<Cmd>BufferGoto 6<CR>", { desc = "6" })
|
|
vim.keymap.set("n", "<leader>bs7", "<Cmd>BufferGoto 7<CR>", { desc = "7" })
|
|
vim.keymap.set("n", "<leader>bs8", "<Cmd>BufferGoto 8<CR>", { desc = "8" })
|
|
vim.keymap.set("n", "<leader>bs9", "<Cmd>BufferGoto 9<CR>", { desc = "9" })
|
|
|
|
-- LSP
|
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {buffer = bufnr, desc = "goto definition"})
|
|
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {buffer = bufnr})
|
|
vim.keymap.set("n", "<leader>vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"})
|
|
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, {buffer = bufnr, desc = "diagnostics"})
|
|
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {buffer = bufnr, desc = "goto next"})
|
|
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {buffer = bufnr, desc = "goto prev"})
|
|
vim.keymap.set("n", "<leader>va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"})
|
|
vim.keymap.set("n", "<leader>vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"})
|
|
vim.keymap.set("n", "<leader>vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"})
|
|
-- vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, {buffer = bufnr})
|
|
vim.keymap.set("n", "<leader>vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"})
|
|
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {buffer=bufnr})
|
|
|
|
-- debug
|
|
vim.keymap.set("n", "<leader>db", function() require"dap".toggle_breakpoint() end, {desc = "toggle breapoint"})
|
|
vim.keymap.set("n", "<leader>dc", function() require("dap").continue() end, {desc = "launch or continue execution"})
|
|
vim.keymap.set("n", "<leader>dsi", function() require("dap").step_into() end, {desc = "step into"})
|
|
vim.keymap.set("n", "<leader>dso", function() require("dap").step_over() end, {desc = "step over"})
|
|
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.open() end, {desc = "open repl"})
|
|
-- debug UI
|
|
vim.keymap.set("n", "<leader>dwb", function() require("dapui").float_element("breakpoints", {}) end, {desc = "open breakpoints window"})
|
|
vim.keymap.set("n", "<leader>dwc", function() require("dapui").float_element("console", {}) end, {desc = "open integrated console"})
|
|
vim.keymap.set("n", "<leader>dwr", function() require("dapui").float_element("repl", {}) end, {desc = "open repl"})
|
|
|
|
-- term
|
|
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
|
|
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
|
|
|
|
-- magic
|
|
vim.keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>", {desc = "find and replace"})
|
|
|
|
-- 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")
|
|
|
|
-- random
|
|
vim.keymap.set("v", "J", ':m ">+1<CR>gv=gv')
|
|
vim.keymap.set("v", "K", ':m "<-2<CR>gv=gv')
|
|
vim.keymap.set("i", "<C-c>", "<Esc>")
|