local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) require("vim-options") require("lazy").setup("plugins") vim.o.number = true vim.o.relativenumber = true -- Panes vim.cmd.set("splitright") vim.keymap.set("n", "/", function() vim.cmd.vnew() end, { desc = "Pane split right" }) vim.cmd.set("splitbelow") vim.keymap.set("n", "-", function() vim.cmd.new() end, { desc = "Pane split down" }) vim.api.nvim_set_keymap('n', '', ':wincmd k', { noremap = true, silent = true, desc = "Move to up windows" }); vim.api.nvim_set_keymap('n', '', ':wincmd h', { noremap = true, silent = true, desc = "Move to left windows" }); vim.api.nvim_set_keymap('n', '', ':wincmd j', { noremap = true, silent = true, desc = "Move to down windows" }); vim.api.nvim_set_keymap('n', '', ':wincmd l', { noremap = true, silent = true, desc = "Move to right windows" }); vim.api.nvim_set_keymap('n', 'gb', ':bnext', { noremap = true, silent = true, desc = "Go back last buffer" }); vim.api.nvim_set_keymap('t', '', '', { noremap = true, silent = true, desc = "Escape Terminal" }); vim.api.nvim_create_autocmd('TermOpen', { group = vim.api.nvim_create_augroup('custom-term-open', { clear = true }), callback = function() vim.opt.number = false vim.opt.relativenumber = false end, }); -- Telescope local builtin = require("telescope.builtin") vim.keymap.set('n', 'fg', builtin.live_grep, { desc = "Telescope live grep" }) vim.keymap.set('n', 'gl', builtin.lsp_references, { desc = "Telescope show references" }) vim.keymap.set('n', 'd', builtin.diagnostics, { desc = "Telescope open diagnostics" }) vim.keymap.set('n', 'ff', builtin.find_files, { desc = "Telescope find files" }) -- Formating vim.keymap.set("n", "gf", function() require("conform").format({ lsp_format = "fallback" }) end, { desc = "Format buffer" }) -- Filesystem vim.keymap.set("n", "e", ":Oil", { desc = "Open file explorer: OIL" }) -- Neotest local neotest = require("neotest") vim.keymap.set("n", "ts", function() neotest.summary.toggle() end, { desc = "Neotest open summary" }) vim.keymap.set("n", "to", neotest.output.open, { desc = "Neotest open output" }) vim.keymap.set("n", "td", function() neotest.run.run({ suite = false, strategy = "dap" }) end, { desc = "Neotest debug closest test" }) -- Debugging local dap = require("dap") vim.keymap.set("n", "db", dap.toggle_breakpoint, { nowait = true, remap = false, desc = "Debug toggle breakpoint" }) vim.keymap.set("n", "dc", dap.continue, { nowait = true, remap = false, desc = "Debug continue" }) vim.keymap.set("n", "di", dap.step_into, { nowait = true, remap = false, desc = "Debug step into" }) vim.keymap.set("n", "do", dap.step_over, { nowait = true, remap = false, desc = "Debug step over" }) vim.keymap.set("n", "dr", dap.repl.open, { nowait = true, remap = false, desc = "Debug open repl" }) vim.keymap.set("n", "dq", function() dap.terminate() require("dapui").close() require("nvim-dap-virtual-text").toggle() end, { nowait = true, remap = false, desc = "Debug close" }) vim.keymap.set("n", "dl", dap.list_breakpoints, { nowait = true, remap = false, desc = "Debug list breakpoints" }) -- Lsp Config vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show hover information" }) vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Goto definition" }) vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, { desc = "LSP code action" }) vim.keymap.set("n", "cr", vim.lsp.buf.rename, { desc = "LSP rename" }) -- Motions vim.keymap.set("n", "", "zz", {}) vim.keymap.set("n", "", "zz", {})