Goal: trim the config toward lightweight, modern plugins — primarily the mini.nvim suite — without losing features I actually use.
Mini modules in use (pl-mini.lua): comment, diff, surround, pairs, splitjoin, snippets, icons, align, cursorword, trailspace, ai, clue.
Other lightweight picks: blink.cmp, oil.nvim, conform.nvim, flash.nvim.
File: lua/pl-telescope.lua
- Telescope is the heaviest single piece in the config.
mini.pickis ~1 file, async, fast built-in fzf-style matching.mini.extraadds LSP / git / diagnostics pickers.- Trade-off: lose telescope-fzf-native and the broader extension ecosystem.
- Alternative if mini.pick feels too minimal:
fzf-lua— max speed, telescope-like UX.
File: lua/pl-ornament.lua
- Drop-in replacement, ~200 LOC.
- Gruvbox-compatible via
set_vim_colors_from_reference_palette.
File: lua/pl-ornament.lua
- More modern, faster, more configurable.
- vim-startify is in maintenance mode.
File: init.lua (noice block)
- Noice is heavy (nui.nvim dep + cmdline UI overrides).
- If the cmdline popup isn't loved, swap to
mini.notifyfor just notifications. - If keeping the cmdline UI matters:
snacks.nvim(folke) — lighter spiritual successor with a modular notifier + dashboard + picker.
File: lua/pl-navigation.lua
- Nvim 0.10+ has native
:123peek behavior viaset jumpoptions. - Tiny plugin anyway, low-priority cleanup.
File: init.lua editing block
mini.pick's quickfix view or plain native qf may be enough.- Removing trims one ft-loaded plugin.
mini.files— floating column file browser; complements or replacesoil.nvim(oil edits like a buffer; mini.files is a navigator). Pick by preference.mini.git— status/log/blame integrated with themini.diffalready in use. Could trimvim-fugitiveif only basics are needed.mini.move— move lines/blocks via<M-h/j/k/l>.mini.bracketed—[b/]b,[c/]c,[d/]d, etc. Replaces the manual buffer keymaps ininit.luaand adds ~20 more pair motions.mini.hipatterns— inline highlight for hex colors, TODO/FIXME/HACK markers.mini.operators— evaluate / exchange / multiply / replace / sort as operators.mini.bufremove—:bdwithout closing the window split.
snacks.nvim(folke) — modular umbrella that could replace noice + nvim-notify + vim-startify + (optionally) telescope in one dependency.grug-far.nvim— modern project-wide search/replace UI, very light.tiny-inline-diagnostic.nvim— prettier inline diagnostics than the built-invirtual_linesset inbuiltin.lua.
blink.cmp, oil.nvim, conform.nvim, flash.nvim, nvim-treesitter, nvim-lspconfig, vim-sleuth, vim-abolish, vim-tmux-navigator, diffview.nvim, dial.nvim.
- Phase 1 — DONE (commit
4bf98a5): statusline + starter + notify → mini equivalents. - Phase 2 — DONE (commit
4bf98a5): telescope → mini.pick + mini.extra; dropped numb + nvim-bqf;<leader>ffopens in preview view. - Phase 3 — DONE: mini.bracketed, mini.move, mini.hipatterns, mini.bufremove. Removed manual
[b/]bfrom init.lua (handled by bracketed). Added<leader>bd / <leader>bwfor buffer remove. - Phase 4 (optional, deferred): evaluate snacks.nvim — skipped for now since the mini equivalents work and consolidating would re-introduce a heavy dependency.
- nvim-treesitter
master→mainbranch (nvim 0.12). Needsbrew install tree-sitter-cli. Incremental selectiongnn/gnrreimplemented natively (grcscope-increment dropped). - vim-fugitive →
mini.git(:Gitstill works; new<leader>g{b,l,L,d,s,h,o}keys). - trouble.nvim →
mini.extrapickers on the same keys (<leader>xx/xX/cs/cl/xL/xQ, plus<leader>cS). - Added
mini.operators(g=eval,cxexchange,gmmultiply,gRreplace,gssort),mini.indentscope,mini.misc(restore cursor),mini.files(<leader>ef),mini.tabline. - Claude Code:
coder/claudecode.nvim(IDE protocol;/idein a tmuxclaudeattaches;<leader>a*keys). Ctrl-G prompt temp files open as wrapped markdown withtextwidth=0. - Fixes:
maplocalleadertypo, nvim-metals never attached, deadttyfast/rainbow, unused providers disabled (clean:checkhealth).
- grug-far.nvim — modern project search/replace UI. Add when needed.
- mini.jump2d / mini.jump — flash.nvim kept instead (better UX).
- mini.cmdline (new) — cmdline completion; try later.
- tiny-inline-diagnostic.nvim —
virtual_lines = { current_line = true }is already set inbuiltin.lua; revisit only if styling feels lacking.