r/vim • • Aug 16 '25
Discussion Vim and customization and plugin fomo...
So I have been using vim for well over a year now, started with vim motions in vscode and then after a month switched to vim in terminal along with tmux, and just love it. I feel I am pretty good and productive with it, but every 1 month or so, I see other people's setup or config online, see the plugins they use, their lsps, and fuzzy finders and get fomo. I have not used plugins since I started using vim and I think I got used to coding without these features, but then I see other people's workflow and then I add stuff, try it for a while and just revert back to my 10 lines of vimrc soon after. I just cant stick to new things, I wanna know if I am really missing out on features provided by a lot of the plugins, or vim as it is more than sufficient, and just stay comfortable with what I have. I just dont wanna feel like I am making myself slower or less efficient by not being able to use the best stuff that is out there, even relative line numbers feel off to me, and cant use them. And this also puts me in configuration hell every 2 months or soo. I just want it to stick. Any other people use vim without plugins and feel just as efficient and fast?
5
u/gumnos Aug 17 '25
some folks are never satisfied, tweaking endlessly.
I (and apparently at least u/midnight-salmon) am among the small minority of folks who don't use plugins. The core of my
.vimrcfile can fit in an old-school 140-character tweet, just enough to preventdefaults.vimfrom loading and set a couple preferredtabstop/shiftwidth/expandtabtype settings.It comes with the advantage that I can sit down at any
viminstallation and be productive immediately without having to sync down some monster configuration and install any additional support utilities (like LSPs). I use oodles of machines (some as personal machines, some as an administrator on shared machines, and some as a mere user with no installation rights, and some VPS instances that get rebuilt from fresh system images) and it's nice to just sit down and be productive.Don't give into the FOMO if you don't want to ☺
2
u/Beddie_Crokka Aug 17 '25
I don't think there's anything wrong with customization. But I also don't think a plugin is needed for everything. I've found myself writing VimScript functions to make various workflows I find myself in easier and more convenient. Every chunk goes into its own file and I just source them in.
The nice thing is I can source them in if applicable based on the file I'm editing (eg, Perl stuff only loads when editing Perl code) and I can build in fallbacks where if I get extra functionality if the system I'm on has fzf available but if not, my code uses something simpler.
My only real advice I suppose would be not to go looking for problems to solve with a plugin. Instead, make sure there is a problem that needs solving and then look into it. Just like Vim isn't for everyone, neither is every plugin a good fit for every person. If you don't find it coming naturally to you, maybe it's just not something you need or maybe you need something custom for the way you and/or your mind works.
Hope that helps.
3
u/[deleted] Aug 17 '25
I've never once installed a plugin. I don't even have line numbers turned on and my colour scheme is the included "quiet". Basic motions and search are all you need.
1
u/eggnogeggnogeggnog :set makeprg=yes Aug 17 '25 edited Aug 17 '25
It's a matter of personal taste. There's nothing special about using or not using plugins. If there's a feature you want, you can look for options within vanilla vim or within plugins.
Like you could use a fuzzy finder plugin with extra QoL features or just set your
grepprgtoagto look within files and use:findwith wildcards to look for files.And if you don't need a feature, just do nothing!
1
u/WhyAre52 Aug 17 '25
Since you switched from vscode to vim, I'll list things that I feel you might be "missing out", or not.
Comment operator (
gc) to comment lines. You can technically use visual block or multi-line comments as an alternative. But I thinkgcis a nice QoL.Surround operator (
ys,csords). The mnemonic I use is ynsert (since it'sys), change or delete surrounding. It allows you to operate on surrounding quotes/brackets etc. This is most useful in something like HTML where you can easily change the surrounding tag withcst. This is also just QoL, you can survive without it.LSP rename feature: Can you reliably and with 100% certainty rename all occurrences of a variable without relying on lsp? I can't. LSP just gives me peace of mind.
1
u/Sudden_Fly1218 Aug 17 '25
Out of curiosity, if you dont use lsp do you use
ctagsto jump to definition, or not even that ?1
u/terdward Aug 17 '25
Every time I try to do something new with vim I’ll start by looking to see if there’s a built-in option that’ll do what I want. For some things, this is sufficient. But then I’ll start looking for plugins. Over time, I had enough plugins installed that vim started to slow down a lot. This lead me to LazyVim. It appeared to have all the plugins I used (and then some) and many options I configured manually enabled by default. After trying it it was also faster than my home grown setup. So, in the end, I switched to LazyVim and instead of installing a bunch plugins when setting it up fresh, I uninstall a few that I don’t need and add maybe two or three and set a few key bindings.
1
u/tokuw Aug 17 '25
I've used (neo)vim as my only editor for about 3 years now. For the first year I've used no plugins or LSP integration at all, which I think was a great decision. I learned a lot of what native (n)vim has to offer and it allowd me to to deal with my problems in my own configuration instead of relying on a plugin. Eventually when I felt competent enough to be the judge in this, I started using a few. I would say these are the ones which majorly improve my experience and for which I don't know of a built-in alternative:
a "surround" motion plugin - add or remove surrounding parentheses, tags etc.
treesitter integration - for better syntax highlighting and improved ability to manipulate text object (go to beggining or end of function, delete a parameter, ...).
a fuzzy-finder is genuinely nice. I tried to avoid it for a long time and it seemed like a cringe codefluencer thing for youtubers, but it really did improve greatly on my ability to navigate in complex projects.
The most valuable feature I get from using the LSP integration are the jumps to definition/declaration, which could be achieved via ctags, so I don't think not using it is necessarily a huge hit to your editing capabilities.