diff options
| author | filip <“filip.rabiega@gmail.com”> | 2026-02-07 15:22:40 +0100 |
|---|---|---|
| committer | filip <“filip.rabiega@gmail.com”> | 2026-02-07 15:22:40 +0100 |
| commit | 6b8a7509fe55ab3d70506a17d2b03560d73388d6 (patch) | |
| tree | 8dee9a7ebd9402685e89836ddc594dd57bd4ab7b /.config/nvim | |
| parent | 1366ab975159e57a0ebd2bdd76d8c8bf26c77f19 (diff) | |
| download | dotfiles-6b8a7509fe55ab3d70506a17d2b03560d73388d6.tar.gz dotfiles-6b8a7509fe55ab3d70506a17d2b03560d73388d6.tar.bz2 dotfiles-6b8a7509fe55ab3d70506a17d2b03560d73388d6.zip | |
new stuff
Diffstat (limited to '.config/nvim')
| -rw-r--r-- | .config/nvim/init.lua | 162 |
1 files changed, 76 insertions, 86 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index f241c57..f100cd6 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -5,73 +5,73 @@ ------------------------------------------------------------ -- General / UI settings ------------------------------------------------------------ -vim.opt.number = true +vim.opt.number = true vim.opt.relativenumber = true -vim.opt.title = true -vim.opt.background = "dark" -vim.opt.laststatus = 2 -vim.opt.showmode = true -vim.opt.showcmd = false -vim.opt.ruler = true -vim.opt.cursorline = true +vim.opt.title = true +vim.opt.background = "dark" +vim.opt.laststatus = 2 +vim.opt.showmode = true +vim.opt.showcmd = false +vim.opt.ruler = true +vim.opt.cursorline = true -- Modern / visual quality -vim.opt.termguicolors = true -vim.opt.signcolumn = "yes" -vim.opt.pumblend = 10 -vim.opt.winblend = 10 +vim.opt.termguicolors = true +vim.opt.signcolumn = "yes" +vim.opt.pumblend = 10 +vim.opt.winblend = 10 ------------------------------------------------------------ -- Window / split behavior ------------------------------------------------------------ -vim.opt.splitbelow = true -vim.opt.splitright = true +vim.opt.splitbelow = true +vim.opt.splitright = true ------------------------------------------------------------ -- Timing & performance related ------------------------------------------------------------ -vim.opt.updatetime = 50 -vim.opt.timeoutlen = 400 -vim.opt.ttimeoutlen = 10 +vim.opt.updatetime = 50 +vim.opt.timeoutlen = 400 +vim.opt.ttimeoutlen = 10 ------------------------------------------------------------ -- Backup, swap, undo ------------------------------------------------------------ -vim.opt.undofile = true -vim.opt.swapfile = false -vim.opt.backup = false -vim.opt.writebackup = false +vim.opt.undofile = true +vim.opt.swapfile = false +vim.opt.backup = false +vim.opt.writebackup = false ------------------------------------------------------------ -- Search and highlighting ------------------------------------------------------------ -vim.opt.hlsearch = false -vim.opt.ignorecase = true -vim.opt.smartcase = true -vim.opt.incsearch = true -vim.opt.wildignore = { "*.o", "*.obj", "*.bak", "*.exe" } +vim.opt.hlsearch = false +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.incsearch = true +vim.opt.wildignore = { "*.o", "*.obj", "*.bak", "*.exe" } ------------------------------------------------------------ -- Indentation and formatting ------------------------------------------------------------ -vim.opt.autoindent = true -vim.opt.cindent = true -vim.opt.smartindent = true -vim.opt.wrap = false -vim.opt.scrolloff = 5 -vim.opt.completeopt = { "menuone", "noinsert" } +vim.opt.autoindent = true +vim.opt.cindent = true +vim.opt.smartindent = true +vim.opt.wrap = false +vim.opt.scrolloff = 5 +vim.opt.completeopt = { "menuone", "noinsert" } ------------------------------------------------------------ -- Clipboard and mouse ------------------------------------------------------------ vim.opt.clipboard:append("unnamedplus") -vim.opt.mouse = "a" +vim.opt.mouse = "a" ------------------------------------------------------------ -- Session and history (shada = viminfo replacement) ------------------------------------------------------------ -vim.opt.shada = "'100,<50,s10,h" -vim.opt.shadafile = vim.fn.expand("~/.local/state/nvim/shada/main.shada") +vim.opt.shada = "'100,<50,s10,h" +vim.opt.shadafile = vim.fn.expand("~/.local/state/nvim/shada/main.shada") ------------------------------------------------------------ -- Miscellaneous @@ -82,8 +82,8 @@ vim.opt.termguicolors = true vim.cmd.colorscheme("pablo") -- Transparency -vim.api.nvim_set_hl(0, "Normal", { bg = "none", ctermbg = "none" }) -vim.api.nvim_set_hl(0, "NormalFloat",{ bg = "none", ctermbg = "none" }) +vim.api.nvim_set_hl(0, "Normal", { bg = "none", ctermbg = "none" }) +vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none", ctermbg = "none" }) vim.api.nvim_set_hl(0, "SignColumn", { bg = "none" }) vim.api.nvim_set_hl(0, "FoldColumn", { bg = "none" }) @@ -94,34 +94,24 @@ local augroup = vim.api.nvim_create_augroup("UserAutocmds", { clear = true }) -- Reload any .lua file on save vim.api.nvim_create_autocmd("BufWritePost", { - group = augroup, - pattern = vim.fn.stdpath("config") .. "/**/*.lua", - callback = function() - vim.cmd("source %") - vim.notify("Lua config reloaded", vim.log.levels.INFO) - end, + group = augroup, + pattern = vim.fn.stdpath("config") .. "/**/*.lua", + callback = function() + vim.cmd("source %") + vim.notify("Lua config reloaded", vim.log.levels.INFO) + end, }) -- Remove trailing whitespace & final newlines, keep cursor vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - pattern = "*", - callback = function() - local pos = vim.fn.getpos(".") - vim.cmd([[%s/\s\+$//e]]) - vim.cmd([[%s/\n\+\%$//e]]) - vim.fn.setpos(".", pos) - end, -}) - -vim.api.nvim_create_autocmd("BufWritePost", { - pattern = "*.tex", - callback = function() - -- Run tex-fmt on the current file - vim.cmd("silent !tex-fmt %") - -- Reload the buffer to reflect formatting changes - vim.cmd("edit!") - end, + group = augroup, + pattern = "*", + callback = function() + local pos = vim.fn.getpos(".") + vim.cmd([[%s/\s\+$//e]]) + vim.cmd([[%s/\n\+\%$//e]]) + vim.fn.setpos(".", pos) + end, }) ------------------------------------------------------------ @@ -132,43 +122,43 @@ vim.g.mapleader = " " -- Helper function for cleaner keymap definitions -- Defaults: noremap = true, silent = true local function map(mode, lhs, rhs, opts) - opts = opts or {} - opts.noremap = opts.noremap ~= false -- default true - opts.silent = opts.silent ~= false -- default true - opts.desc = opts.desc or nil -- optional description + opts = opts or {} + opts.noremap = opts.noremap ~= false -- default true + opts.silent = opts.silent ~= false -- default true + opts.desc = opts.desc or nil -- optional description - vim.keymap.set(mode, lhs, rhs, opts) + vim.keymap.set(mode, lhs, rhs, opts) end -- Delete char before cursor + char under cursor -map('n', '<BS>', 'dBx', { desc = "Delete char before + under cursor" }) +map("n", "<BS>", "dBx", { desc = "Delete char before + under cursor" }) -- Insert blank line below current line and center view -map('n', 's', 'o<Esc>kzz', { desc = "Insert blank line below + center" }) +map("n", "s", "o<Esc>kzz", { desc = "Insert blank line below + center" }) -- Start substitute on current line (pre-filled :%s//g) -map('n', 'S', ':%s//g<Left><Left>', { silent = false, desc = "Substitute on current line" }) +map("n", "S", ":%s//g<Left><Left>", { silent = false, desc = "Substitute on current line" }) -- Note: silent = false because it enters command-line mode -- Yank to end of line (consistent with D and C behavior) -map('n', 'Y', 'y$', { desc = "Yank to end of line" }) +map("n", "Y", "y$", { desc = "Yank to end of line" }) -- Swap current line with the one below -map('n', '-', 'ddp', { desc = "Swap line with next" }) +map("n", "-", "ddp", { desc = "Swap line with next" }) -- Swap current line with the one above -map('n', '_', 'ddkP', { desc = "Swap line with previous" }) +map("n", "_", "ddkP", { desc = "Swap line with previous" }) -- System clipboard yank & paste (line / WORD) -map('n', '<C-j>', '"+yy', { desc = "Yank line to system clipboard" }) -map('n', '<C-c>', '"+yW', { desc = "Yank WORD to system clipboard" }) -map('n', '<C-k>', '"+p', { desc = "Paste from system clipboard after cursor" }) +map("n", "<C-j>", '"+yy', { desc = "Yank line to system clipboard" }) +map("n", "<C-c>", '"+yW', { desc = "Yank WORD to system clipboard" }) +map("n", "<C-k>", '"+p', { desc = "Paste from system clipboard after cursor" }) -- Yank selection to system clipboard -map('v', '<C-j>', '"+y', { desc = "Yank selection to system clipboard" }) +map("v", "<C-j>", '"+y', { desc = "Yank selection to system clipboard" }) -- Toggle buffers -map('n', '<Tab><Tab>', '<C-^>', { desc = "Toggle last / alternate buffer" }) +map("n", "<Tab><Tab>", "<C-^>", { desc = "Toggle last / alternate buffer" }) ------------------------------------------------------------ -- Tabs & indentation @@ -181,9 +171,9 @@ vim.opt.expandtab = true -- Filetype-specific mappings ------------------------------------------------------------ vim.api.nvim_create_autocmd("FileType", { - group = augroup, - pattern = "python", - command = "map <F5> :w<CR>:!python3 %<CR>", + group = augroup, + pattern = "python", + command = "map <F5> :w<CR>:!python3 %<CR>", }) ------------------------------------------------------------ @@ -196,14 +186,14 @@ require("config.lazy") ------------------------------------------------------------ require("luasnip").config.set_config({ -- Setting LuaSnip config - -- Enable autotriggered snippets - enable_autosnippets = true, + -- Enable autotriggered snippets + enable_autosnippets = true, - -- Use Tab (or some other key if you prefer) to trigger visual selection - store_selection_keys = "<Tab>", + -- Use Tab (or some other key if you prefer) to trigger visual selection + store_selection_keys = "<Tab>", }) -vim.cmd[[ +vim.cmd([[ " Use Tab to expand and jump through snippets imap <silent><expr> <Tab> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>' smap <silent><expr> <Tab> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Tab>' @@ -211,7 +201,7 @@ smap <silent><expr> <Tab> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Ta " Use Shift-Tab to jump backwards through snippets imap <silent><expr> <S-Tab> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>' smap <silent><expr> <S-Tab> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>' -]] +]]) -- Load snippets from fiadra/chadsnips require("luasnip.loaders.from_vscode").lazy_load() |
