... vi was written for a world that doesn't exist anymore.
... programmability and the modelessness. Those are two ideas which never occurred to me.
41–50 of 507 posts
... vi was written for a world that doesn't exist anymore.
... programmability and the modelessness. Those are two ideas which never occurred to me.
Speaking personally, I've been a professional developer for almost decade and even in my relatively short career I've seen a lot of technologies come and go. I was reluctantly roped into it by my first boss, an enthusiastic Vim advocate. And since, almost nothing else (save for maybe git) beat learning vim from a return on investment perspective. From the default mac OS installation to some old Fedora box that has no…
Everything I need to know about vi is contained in the following two quotes from Bill Joy, its creator: ... vi was written for a world that doesn't exist anymore. ... programmability and the modelessness. Those are two ideas which never occurred to me.
Vi (and ed) are the only text editors required to be included in the POSIX spec. A base Unix (and most Linux) installs will have some version of vi or vim installed by default. If I'm working on someone else's box this pretty much guarantees I can edit files with my basic vi knowledge without having to install a different editor.
I was playing with Haiku recently and was surprised that vi or vim wasn't included in its base install. Granted, Haiku (like BeOS before it) doesn't ever claim to be a Unix-like or POSIX-compliant system, but I found the CLI environment to be very Unix-like overall. I guess it's a testament to the ubiquity of vi that it never occurred to me that it wouldn't be there. (If anyone's curious, emacs is also absent but nano is there.)
We also need to understand that a subset of vi features is part of the POSIX standard, so any POSIX system will need to have "vi". vim is the logical choice there. So as a result vim has become the reference implementation for the POSIX vi featureset.
All of vi is specified by POSIX, but vi is only a subset of vim.
I think this was the page that started me down that path: https://realpython.com/vim-and-python-a-match-made-in-heaven...
For me it is being able to efficiently navigate a file without leaving the home row (Gotta learn touch typing first). Once you understand the commands follow a composable grammar it is really like a superpower for dancing around text. „Go down 5 lines, move right two word, replace the contents of the brackets“. I don‘t use the actual editor all that often but have vim mode enabled in all my „real“ editors like VSCode…
1) Supports more than basic text manipulations. Rectangle selection and deletion? Check. Regex operations? Execute shell command on selection and replace inline? Record a macro and execute N times? Modes? Stuff like that.
2) I know it really really well to the point I don't need to look anything up to use it.
3) Runs anywhere. Got a shell on the hard disk controller? It will be there.
Vi is better only at 3. Emacs 1-2, and I would say 3 partially compared to other visual editors that you sometimes can't run even if you tried.
I really don't care about the Lisp, or the home row stuff, or whatever. That falls under #2. As long as I memorize and get good at how some operation is done, and the effort is similar, I'm fine.
And then we get to #1, and pretty much all good editors today do well there.
Probably because it was the default editor in a bunch of Linux distributions.