It's not only some rando on the internet. There's always that one co-worker with a wannabe-vim-hacker setup, that you have to help occasionally with some real work task and nothing in their setup ever works effectively (bonus points for only using DVORAK). After showing them how much easier things are with autocompletion in intellij, next week they proudly show their latest installed emacs-plugin, that only does half-assed keyword completion, without being aware of variables, imports and the program structure. Such a waste of time. Lately I've started to just refuse cooperating under such circumstances, unless they truly show they know their tools.
Mastering the commandline is of course still important, just please not for editing code.
If you want half-assed keyword based completion, you don't need any plugins at all (e.g. ctrl-n in vim).
And if you install a proper plugin that uses language servers, you're at the same level of VSCode, which I'm pretty sure is the most used editor by a wide margin.
Your rant sounds more like you're more annoyed by "wannabe-vim-hackers" than any actual limitations of the tools.
Not OP, but to me, software that requires installing multiple plugins and extensions on top of it and requires much configuration in order to be useable is basically "unfinished software". It's 2022. Software not just has to work out of the box (or out of the download), it has to be packaged with everything needed to actually use it. It has to come fully configured for the most common use cases, or be able to fully configure/adapt itself at runtime. The days of sitting there installing plugins and tweaking settings and looking up how to configure it to do Common Use Case Xyz should be long behind us.
For example browsers. Whenever there is a Must Have extension that basically everyone downloads and installs, we should not be saying "See! It's great that software has plugins and extensions!" We should be saying "The development team totally missed this."
To be honest, VIM doesn't require plugin installation to be fully functionnal.
The main problem with VIM is that nobody reads the documentation, and jumps directly trying to configure vim to imitate what they experienced with other softwares.
Most VIM users never understand VIM philosophy and inner mechanism supporting it. They just try to bend VIM into another graphical code editor.
It's like the meme about "exiting vim". It is pointless. Once you understand VIM you never need to exit it. Just Ctrl-z or use neovim terminal if needed.
The best challenge i was given by VIM guru, when i was asking help installing dozen of plugin, was to read the vim doc (:help) and just use for 6 months a VIM pure vanilla, without any plugin and minimal vimrc.
After more than 20 years using VIM daily, i just understood i never learn how to use VIM and were just an adept of CARGO-CULT, victim of mass spread anti-pattern.
I guess you could shell out to check for errors (for example), but isn't it in general nicer to get error messages as you go? Or how about actually intelligent autocomplete? Stock vim simply cannot do those.
What are some examples of plugins people commonly use that you think are useless?
I'm a sysadmin, and most of what I do (editing config files) is very efficiently done in nano.
Edit a vhost in apache/nginx.
Change a port number on a service.
edit rc.conf,
etc...
But I've discovered that by using vim macros, the tedious parts of using nano became easy and FASTER then nano.
Let's say you have to declare a bunch of IP's and you can't just type a range, you have to type out each one.
In nano: copy/paste each line then backspace to change the last octet.
TEDIOUS
In vim: write it once
record a macro of doing it a second time auto-incrementing the last octet.
now type: 199@w (or whatever letter you stored that macro in)
BOOM, 199 new lines have been input.
That 1 use case, made me use vim more.
Then I got better.
Then I got faster.
Now I can edit those same old config files faster then I once did in nano.
Please believe me, it's worth the learning curve. There is SO MUCH MORE available then just editing some config files.
Nano is fine. There is nothing wrong with nano.
If you only edit (config) files a couple of times a year, then maybe you won't want to switch. But I'm so much better at vim then I was before, I use it to do ALL my writing and editing.
Literally nobody is asking you to use vim. In fact, I don't recommend it to newbies, and warn that a lot of setup is involved. But I am 100x more productive in it than any other IDE, or seen anyone else with an IDE. It works for me. It may not work for you, that's fine.
You might be well served by not seeking out the company of vim users then. There’s better things to spend this life on than arguing about editors, plugins, and keybindings.
Yes there's a learning curve but once you've learned that it can be more efficient. For some people key bindings are easy to remember. For others a menu is better even though it's slower to navigate.
But clearly it isn't for you. It isn't for me either, though I did try. I just don't really have a reproducible workflow (I'm not a dev). In that case the setup overhead does indeed not pay off. If you spend every day in an IDE I could definitely see it working out.
Even on my work mac I often prefer using the cli for things that others would do in the GUI. They find that archaic and overly complex. I find it simple and faster. Opinions vary :)
I've been using Vim since college and nothing else and I could retire at 33 from my FAANG RSUs so it worked for me. Have fun "getting shit done" in VSCode or whatever. Honestly if someone told me they hated memorizing commands or configuring their environment in an interview I would see that as a big red flag, but you do you.
Most of it unvested stock and not enough to retire at 33.
Thanks to the great people running the economy, if you get to survive all layoffs taking place and vest that money, you'll be able to buy an avocado toast made of soylent green in the metaverse of the future. You will own nothing and be happy.
LITERALLY BUILTIN: - Edit code - Do all that remotely or with containers involved - Spell checking
ALE: - Autocomplete - Navigate code, find references, go to definitions - Run multiple static analyzers simultaneously
DISPATCH: - Run your code - Debug your code - Test your code (including running a specific test) - Profile your code
FUGITIVE: - Use version control and annotate code using version control