Something went wrong. Try again.
🪴 my neovim config:)
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141local function wrap(fn, ...) local props = vim.F.pack_len(...) return function() pcall(fn, vim.F.unpack_len(props)) endend
-- goto next search and uncover linevim.keymap.set("n", "n", "nzzzv")-- goto prev search and uncover linevim.keymap.set("n", "N", "Nzzzv")
-- remove shift down movementvim.keymap.set({ "n", "v" }, "<S-down>", "<nop>")-- remove shift up movementvim.keymap.set({ "n", "v" }, "<S-up>", "<nop>")
-- quit allvim.keymap.set("n", "<leader>q", vim.cmd.quitall)-- detachvim.keymap.set("n", "<C-z>", vim.cmd.detach)
-- save file without autocmdsvim.keymap.set( "n", "<C-s>", wrap(vim._with, { noautocmd = true }, wrap(vim.cmd, "write")))-- edit alt filevim.keymap.set("n", "<C-j>", "<C-^>")
vim.keymap.set("n", "gV", '"g`[" . strpart(getregtype(), 0, 1) . "g`]"', { expr = true, replace_keycodes = false, desc = "visually select changed text",})vim.keymap.set( "x", "g/", "<esc>/\\%V", { desc = "search inside visual selection" })
-- select inside wordvim.keymap.set({ "v", "o" }, ";", "iw")
-- editingvim.keymap.set({ "n", "v" }, "C", '"_c', { desc = "non-copy change" })vim.keymap.set({ "n", "v" }, "D", '"_d', { desc = "non-copy delete" })vim.keymap.set("o", "D", "0D", { desc = "clear current line" })
vim.keymap.set("n", "zq", function() local is_qf_open = vim .iter(vim.api.nvim_tabpage_list_wins(0)) :find(function(win) local buf = vim.api.nvim_win_get_buf(win) return vim.bo[buf].buftype == "quickfix" end) if is_qf_open then vim.cmd([[cclose]]) return end vim.cmd([[botright copen]])end, { desc = "toggle quickfix" })
vim.keymap.set("n", "zD", function() if vim.o.diff then vim.cmd([[diffoff]]) return end vim.cmd([[diffthis]])end, { desc = "toggle diff mode" })vim.keymap.set("n", "dzo", "<cmd>%diffget<cr>")vim.keymap.set("n", "dzp", "<cmd>%diffput<cr>")
-- vim-scriptease inspired `zS`vim.keymap.set("n", "zS", vim.show_pos, { desc = "inspect marks" })
vim.keymap.set( "n", "g.", [[:%sno/<c-r>"/<c-r>./g<cr>]], { desc = "repeat last edit for file" })
vim.keymap.set( "n", [[\c]], "<Cmd>setlocal cursorline! cursorline?<CR>", { desc = "toggle 'cursorline'" })vim.keymap.set( "n", [[\C]], "<Cmd>setlocal cursorcolumn! cursorcolumn?<CR>", { desc = "toggle 'cursorcolumn'" })vim.keymap.set("n", [[\d]], function() vim.diagnostic.enable(not vim.diagnostic.is_enabled()) print( "diagnostics " .. (vim.diagnostic.is_enabled() and "enabled" or "disabled") )end, { desc = "toggle diagnostics" })vim.keymap.set( "n", [[\h]], '<Cmd>let v:hlsearch = 1 - v:hlsearch | echo (v:hlsearch ? " " : "no") . "hlsearch"<CR>', { desc = "toggle 'hlsearch'" })vim.keymap.set("n", [[\i]], function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) print( "inlay hint " .. (vim.lsp.inlay_hint.is_enabled() and "enabled" or "disabled") )end, { desc = "toggle inlay hint" })vim.keymap.set( "n", [[\l]], "<Cmd>setlocal list! list?<CR>", { desc = "toggle 'list'" })vim.keymap.set( "n", [[\r]], "<Cmd>setlocal relativenumber! relativenumber?<CR>", { desc = "toggle 'relativenumber'" })vim.keymap.set( "n", [[\s]], "<Cmd>setlocal spell! spell?<CR>", { desc = "toggle 'spell'" })vim.keymap.set( "n", [[\w]], "<Cmd>setlocal wrap! wrap?<CR>", { desc = "toggle 'wrap'" })