this post was submitted on 02 Feb 2024
304 points (95.8% liked)
Programmer Humor
32495 readers
472 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
This is bound to be an unpopular opinion here but I hate vim.
Shortcuts in vim make no sense whatsoever. They’re not the fastest possible shortcuts nor are they intuitive.
Sure it’s got useful features if you let the awful design brow beat you into memorising an absurd number of shortcuts that lack any form of logic.
You could have a cheat sheet on another monitor but at that point why not have an editor that has a gui.
The reason is b/c vim predates GUIs. Yes, as in all of them:-D. (Or rather, its predecessor vi did and vim unlike others very much remained true to its origins)
Even now, there are many places e.g. when doing server maintenance or accessing a compute cluster via SSH, sometimes you do not have a handy GUI environment accessible, at which point your choices become extremely limited, and it helps that vim has been installed on every Unix-i/Linux-ish machine since the 80s.
GUIs are superior, ofc, when they work. On a daily basis I even use a GUI for vim - MacVim (for Windows there used to be Cream but I am very out of date there), and there is always gVim. I could use something else but I am familiar with vim and it is EXTREMELY powerful - e.g. I could indent 100,000 lines in the middle of a file without having to manually select all of them at once first, or better still only do the indentation based on matching a pattern.
It is very advanced, and thus not for everyone, and even those of us that use it often prefer the GUI way for simple tasks like select a contiguous block of 5 lines, but it offers the benefit that it works in the widest possible number of scenarios - e.g. more than nano. emacs does too, except its commands are so configurable that the X-windows GUI number 1, X-windows GUI number 2, and command-line versions all use entirely different shortcuts, so a cheat sheet would not help. vim offers consistency that, afaik, is absolutely unmatched anywhere.
Now you know:-).
Even when Emacs had two GUI versions, the default keys were pretty much the same between them, as far as I recall, excepting features missing from one or the other. For a very long time now, it's all been reconciled as GNU Emacs, anyhow, whether CLI or XWin GUI, or even on a Mac or (shudder) MS Windows. I just use my local running Emacs, with my preferred configuration, to edit files anywhere, such as inside a running container on a remote server in AWS, so it's pretty consistent for me.
Thanks for the update - I so rarely use emacs that I might be guilty of misinformation here, as in what may have been true two decades ago is not any longer. I'll try to remember that.:-)
I was shoved into Linux by a nearly dead HPC expert who was definitely angry about the advent of electricity.
Wasn't given any indication of a text editor, I ran across vim for one reason or another and enjoyed his Palpatine-like reaction from seeing me using vim enough to keep using it. And if you're enjoying something, why not
But yeah, it has some drawbacks lol
Having a mentor like this is unfathomably valuable. The kind that knows exactly when a printer problem should be fixed with a sledgehammer and are not afraid to apply the “fix”.
You can change shortcuts
Its more about using your own shortcuts if you dont like some which is what you should do whatever editor you use
So then what makes vim special? From what I understand it's just a "standard" for shortcuts to features that can be shared between different editors, right?
The special thing about vim are the different modes. In a editor which does not support modal editing, you can't bind a letter key directly to a function, or else you can't type that letter any more.