I’d like actual examples instead of “I work faster”, something like “I can move straight to the middle of the file with 7mv” or “I can keep 4 different text snippets in memory and paste each with a number+pt, like 2pt”, things that you actually use somewhat frequently instead of what you can do, but probably only did once.
I am logged into various servers via ssh constantly and nano or vim (or at least vi) are installed pretty much by default everywhere.
How could I live without dd, vap, 99j, 99k, 555gg, zt, zz, zb, [, ]?
If these were the only vim commands it would still be better than Nano.
For me it’s plain ol’ tT and fF. I get frightfully bored when a text field makes me use Home/End/arrows 😪
It’s like, I know where I want the cursor, just let me GO there. And no manually moving my cursor into position is not it. It’s so not it
Nano is extremely basic, it’s not really the right comparison. Vi competes well with heavyweight GUI editors and IDEs, yet is available about as ubiquitously as nano.
By learning vi, I can have my no-compromises favorite editor equally available to me locally or remotely. The terse, low-chord (looking at you, nano) editing language in vi means I’m not even that hampered when I do remote editing from my phone.
Just being able to jump to the top of the file, bottom of the file, beginning or end of the line, or directly to a regex pattern match or particular character already gives me some of the same satisfaction as a video game with really tight movement controls. (I also like being able to jump to lines by number, manipulate lines by number or range, and I like being able to get to the top, bottom, or middle of the screen with one or two keypresses.)
In the same vein, deleting arbitrary lines at a time, performing external operations only on lines that match a particular pattern, and saving macro recordings of repetitive manual changes all feel like multiplicative powerups. Heck, incrementing and decrementing with ^a and ^x feels like one more little cheat code. Bouncing on parentheses with % makes structured files easy to get around in.
These are all things I’ve done with some regularity over the years.
Bouncing on parentheses with % makes structured files easy to get around in.
That’s something I wasn’t aware you could do in vim. % jumps to the next parentheses character, whether ( or )? Does it work with brackets and curly braces too?
Not just the next parenthesis that appears, It jumps to the matching one that opens or closes the one under the cursor. Hitting it repeatedly bounces back and forth around the text that pair of parentheses enclose.
It works not only with brackets and curly braces, but also with opening and closing tags in XML etc.
I feel like other editors must have an equivalent feature, though. I’d say the fact that vi can put such a specific action under just %
rather than some nasty chord or mouse operation is what really makes it shine here.
One of my favorite emacs features is the VHDL stutter mode (which replaces certain repeatedly-typed characters with operators), as well as an easy to get to rectangle select, and it just being decently fast compared to something like VSCode. I also never have to take my hands off of the keyboard, because it’s all right there. It just feels better to me.
I do most of my work on my laptop, which has a really shitty touchpad (a system76 pangolin 12). Using the touchpad to scroll, move around, etc. feels clunky and frustrating. Using my wonderful keyboard feels amazing, quick, and responsive. Honestly, that’s the main reason I use neovim; touchpads, especially bad ones, just feel clumsy, imprecise, and inefficient.
Now I’ve gotten used to typing nv
and, in under 30 milliseconds, getting a full-featured, LSP-supporting text editor. Other editors trigger my impatience now 😂. The features are secondary to me, they’re not what makes nvim great.
If there were two things that are a game changer for me though, they would probably be <C-o>
(mixed with plugins like trailblazer) and the incredible ease of use that vim macros offer.
I work on many different systems, some ancient and some embedded, some both. Vim and friends are ubiquitous. It’s a tool I’ve learned to use effectively by necessity, because other editors weren’t always available.
As an example, many routers don’t offer a graphical environment. There is no option to use something like Visual Studio or notepad++ without shuffling files around.