Today's follow-up #FreeSoftwareAdvent entry is vi/vim.
Which I use depends on the situation. Classic vi/nvi tends to be lighter weight and start faster, while vim offers extra features that I find particularly useful). I usually just type `vi` which gets me `vi` on OpenBSD, `nvi` on FreeBSD, and `vim` (or `vim-tiny`) on most flavors of Linux. If I specifically want vim features, I'll invoke it as such directly.
I could go on for ages about favorite features, but a select few:
• the ability to keep my hands on the home row and not use a mouse is helpful for preventing RSI symptoms
• it's a language¹ of editing, involving counts, verbs/commands, and objects/motions, so I can express my editing *intent* and then use the period command to re-issue that same editing *intent*
• the :global or :substitute commands can make massive-yet-precise edits across huge files
• the :*do commands extend that power across multiple files, allowing me to precisely edit millions of lines across thousands of files with targeted precision
• it's ubiquitous—even as some Linux distros have started removing ed(1) from the base installs , relegating it to packages, I can always type `vi` on any Unix-like/POSIX system and be editing with a powerful editor. And with builds for Windows and my phone, I can use it everywhere. No need to install anything
• they work just fine over a SSH connection without a GUI, and use minimal resources so they work even on that old hardware from the 90s.
