Being honest the real reason i wanna learn Vim is to boost my ego & assert my dominance, so i can tell people "i use vim btw", but also part of me thinks investing time could still pay off for speed, ergonomics, and working over SSH overall...
but a bigger part also suspects the marginal gains i would gain would disappear when more of the work is delegated to AI anyway, like why would i learn Vim if i'm just going to be prompting Opus all day?
For anyone who's been using Vim for while AND uses AI to code (i'm assuming everyone codes with AI to some degree) my question is: Does learning Vim still meaningfully improve your day to day productivity EVEN with AI, or is it mostly personal preference at this point?
Learning the essentials of vim was the sort of skill that for me took about 10 min per day over a couple months and has come in handy almost every day since then. Can you get by without it? I guess, if you do absolutely everything via a GUI. Or delegate all CLI work to LLMs without ever questioning or second guessing their output.
And yes, I use vim for almost every git commit or interactive rebase. Access to the full power of CLI git is something I value very much and has saved me countless hours. Not to mention using it for editing any config file that’s not part of a repo.
Every time you’re able to keep your fingers on the keyboard instead of reaching for a mouse saves you both time and precious context switching energy.
I'm sure once one is used to modal editing, one can be speedy with it. So can I, entirely without modal yet without mousing =)
You'll need to edit files sometimes, and Vim (or Vi) is usually present. I don't think I've seen an install without it.
The basics (opening files, writing, and closing) can be learnt in an hour. It's enough to make simple changes to .conf files.
I’ve often in my career witnessed engineers who’ve cargo culted the need for vim, but they only know how to hit ESC !wq or whatever, and one errant keystroke puts them in modal hell of some sort that, often requiring they just close the terminal and try again.
I don’t begrudge those who want to become power-VIM-users, though it seems wildly awkward to me, to each their own. But if you just want to use it to do the “basics” on ssh sessions, using nano makes more sense. PGUP and PGDN and Home and End and arrows work just fine to navigate, and the bindings for most things are printed right on the screen (except Ctrl-S to save… for some reason, but it works).
1. The LLMs are down, and you're on call and you need to fix a bug immediately (no mistakes)
2. You're working over serial (The LLMs aren't there to help you and only vi and emacs are available)
3. You're working on an old computer for some esoteric reason.
4. You're going in an interview and they (temporarily) forbid you to use an LLM to check your knowledge on using these tools (as well as programming tests)
If you cannot use these editors without an LLM, (Vim has navigation keys 'hjkl', G/g and so forth which many such tools have adopted), then it isn't a good look.
You don't have to 100% master them but knowledge of them will help when the LLMs have an outage, and there WILL be outages.
Also be careful not to keep relying on these LLMs too much otherwise your programming skills will atrophy. [1]
So the answer is YES, learn Vim, not to boost your ego, but make it a muscle memory so your skills won't atrophy.
[1] https://www.infoworld.com/article/4125231/ai-use-may-speed-c...
(10 year evil-mode user who moved to Neovim for other reasons, chiefly performance/LSP nativity/plugin ecosystem vitality)
I think it’s worth learning vim, or emacs shortcuts, as an intellectual exercise.
I still save time by editing little code thanks to vim, or vim mode in my ide. And it doesn’t take that long to know the basics. Is it worth it in terms of seconds saved over a career? Perhaps not anymore.
Purposefully ignoring the second part.
First, what really matters is the vi part of vim, i.e the idea of commands, text objects, motions,... The rest are very useful features that are nice to have especially in a programming context (quickfix list, makeprg, window and buffer management, macros,...).
The first part makes editing text so much easier. Even in the day of prompting, they're still useful to have in any text editor. It takes typing text from a chore to a fun activity.
Your assumption is incorrect, even in this forum, which is one of the most pro-AI places you'll find on the internet.
If you think vim is fun (it is), you have my permission to learn it. It's also OK to do things without first asking for social validation.
I use nvim all the time for code exploration & figuring out what i need to tell the AI. Invest in tools and packages that let you navigate your codebase quickly
FWIW, I think it's one of the last areas of the software world that gives me true joy. I would suggest to give a try for simple that reason.
I use AI to get vim commands!
While vim produces efficiencies for developers, that's not the single highest goal in programming.
If you ask this question, I believe you also fell for this narrative.
Learn it, if it intrigues you. But don't feel bad if you don't have any motivation to do so.
On the off-chance that you somehow encounter a real world situation where you have to log into a POSIX machine that has no other editors (nano, etc.), you can just learn it then.
I mean you're not defusing a bomb - it's not like you couldn't pull up the shortcut list on your phone and get acquainted with the majority of what you need in a few minutes.
> boost my ego & assert my dominance
I have never met a developer who unironically flexed that they used vim (or one of its modern variants like neovim).