My wife was unimpressed by Vim

https://programming.dev/post/12501217

My wife was unimpressed by Vim - programming.dev

This relationship can be saved as long as the guy’s wife does not start expressing an interest in Emacs. That would, of course, put an end to the relationship, but if she’s one of those “Notepad is all I need” types, there is hope this can be worked through.
Maybe she already evolved past vim to kakoune. 😎
and evolved past kakoune to helix
I actually went, emacs -> vim -> helix -> kakoune.
I went helix -> vim -> emacs -> kakoune -> neovim, super interesting to see how people’s experiences differ
You made me look up helix again after a few years and it’s gotten pretty sick actually. I might main it for a while to see how it fairs. It’s fairly similar to kakoune of course, but it’ll take a while to get all the modes into my muscle memory. The similar actions are in different modes and there are many more modes in helix as far as I can tell. But it’s cool, looking forward to experimenting.
Guy shoulda tried emacs instead, wife is probably an elitist
As someone who's been a software developer for over a decade and in IT even longer, I still don't use vi/vim for anything other than when crontabs have it set as the editor.
alias vi=nano
You can set your default editor (maybe in .bashrc or .bash_profile? I forget), but I'm far too lazy.

export EDITOR=nano.

But (neo)vim is amazing so there is no need to do that.

I transfer all my files over to a Windows machine and edit them in Notepad

Based nano user

From my .zshrc (typing this on mobile so cope if it’s wrong)

case “$OSTYPE” in linux*) export EDITOR=nano ;; freebsd*) export EDITOR=ee ;;

I guess shell languages can’t do this:

export EDITOR=case "$OSTYPE" in linux*) nano ;; freebsd*) ee ;;
That would be too smart
Put backticks around the entire case statement, and you can.

Honestly if you don’t use vim motions in your ide of choice, you’re missing out big time. Being able to do things like “Delete everything inside these parentheses”. di( or “wrap this line and the two lines below r in a pair of {}” ys2j{ , or “swap this parameter with the next one” cxia]a. with a single shortcut is game changing.

Even just being able to repeat an action a number of times is ridiculously useful. I use relative line numbers, so I can see how many lines away a target is and just go “I need to move down 17 lines” and hit 17j.

Absolutely insane how much quicker it is too do stuff with vim motions than ctrl-shift-arrows and the like

That's really neat, but I don't think I do that often enough to really make the performance hit of learning a whole new thing and memorizing keyboard shortcuts and commands worth it. I don't find myself refactoring code a ton, especially after moving to a more TDD-like model.

It’s less about refactoring and more about navigation of your code while editing. Ever wanted to delete a single word? daw deletes the word your cursor is currently in. How about "copy everything up to (but not including) the nearest “D” on the current line? yfD.

The whole point is that editing code in the middle of writing it, not just refactoring it, is immensely faster.

Absolutely insane how much quicker it is too do stuff with vim motions than ctrl-shift-arrows and the like

Those tasks are a very small part of work time, so most people don’t feel the need to optimize it.

As a software dev, they’re significant parts of what I do
Are you one of those rare developers who spend most of their day actually coding?
Yes, absolutely. And I refuse to let my day be anything else! :-)
Only if you use a qwerty keyboard, otherwise it’s just annoying as shit
You might’ve moved around too quickly. Stick to motion in the home row to start - hjkl. There are several ways to enter insert mode but DO NOT attempt it before she’s familiar with the basic motions.
Hey at least you showed her your vim and not your nano or micro
Would’ve loved to see which community they posted to. RelationshipAdvice?
immediate divorce /s
Realising that your partner doesn’t care about you after 10+ years can indeed be hard.
Can confirm, am getting divorced after 12 years
“Muuhuum, vim is wrecking havoc on relationships again!”

make several limes with the number 0
visual mode mark them and do g ctrl a

gets 'em every time!

Maybe she just wasn’t impressed by your noob skills and is having doubts herself?

My jaw literally dropped reading that.

I think it’s time to go outside.

Show her you know how to exit vim and she’ll instantly be naked and on the bed

Have you tried tiny macros with q and @? Syntax highlighting? Z-folds? Or turn vi into a hex editor with :%!xxd ?

If that doesn’t work, try :divorce

I refuse to see how vim and emacs is worth learning. I only use it because that’s the only option when editing server files. Beyond this, I couldn’t imagine coding in these environments from scratch.
That’s probably what the wife was thinking I bet.

The biggest benefit of (neo)vim is the motions.

Honestly if you don’t use vim motions in your ide of choice, you’re missing out big time. Being able to do things like “Delete everything inside these parentheses”. di( or “wrap this line and the two lines below in a pair of {}” ys2j{ , or “swap this parameter with the next one” cxia]a. with a single shortcut is game changing.

Even just being able to repeat an action a number of times is ridiculously useful. I use relative line numbers, so I can see how many lines away a target is and just go “I need to move down 17 lines” and hit 17j.

Absolutely insane how much quicker it is too do stuff with vim motions than ctrl-shift-arrows and the like.

Feel it’s worth noting that ys[motion][symbol] is a plugin (vim-surround or nvim-surround at your option) and most IDEs therefore don’t support it

Also as for plugins, Tim Pope’s vim-argumentative is another one I love. “Swap this parameter with the next one” is >, and “swap this parameter with the previous” is <,

Ah right, I forget that that one is from vim-surround. Though I know some ides do support somewhat custom vim-configs!

I didn’t know about argumentative, my swapping is powered by Tree-Sitter

Honestly those things just don’t sound like common enough actions to be worth shaving 0.5 seconds off. How often do you know exactly how many lines to move a line by? And how often do you even need to move a line that far?

I still don’t buy it.

Relative lines means each line except the one your cursor is on is relative to your current line. Like this:

5 5k jumps here

4

3

2

1

6 your cursor is here

1

2

3

4

5

6

7

8 8j jumps here

The main reason I like it is I don’t like mouse ergonomics. Keeping my hands on the keyboard just feels better

Yes I understood that. My point is how often do you know you need to move a line exactly 17 lines? Do you count them? Clearly much slower than doing it interactively by holding down ctrl-shift-down for a bit.
I just look at the line number. If the code I want to edit is 17 lines up there’s a 17 next to it. My ide window looks like my comment
As a vim user myself, I don’t understand why you need relative lines either. I can just as easily type :23 to go to line 23.
Mostly a matter of taste I think. One benefit is one less key press since relative keys shouldn’t need to press enter at the end of the command. I mostly use it because it came default with LazyVim.
You ain’t understanding it dog
Thoose are line numbers in IDE. You don’t count them, you see them
Line numbers are absolute, not relative (normally anyway; I think some editors allow showing relative line numbers). Anyway I think holding down (page) up/down is going to be just as fast.
There are both modes for absolute and relative line numbers in vim. Holding up/down might be intuitive nd easy to remember, but saving 1 second everytime you need to do this can add up pretty fast
Not “move the current line of code”, but instead “jump the cursor a number of lines”
Oh so like page up/down then? Not exactly showing the raw power of Vim when you can use an existing key press! 😄
I can’t tell if you’re trolling; Page up and page down are different from “I need to jump 10 lines down” with 10j. Or 11 lines with 11j. Or “Delete the line I’m on and the six below it” with d6j.
They’re not significantly different. Maybe it takes you 1s and me 2s. Not worth the effort of learning. Especially because Vim comes with significant downsides compared to full IDEs that will make you slower overall.
Name a downside, I’ll tell you how you’re probably wrong
You can’t have a full integrated debug session with a watch window, locals (with an expandable tree for objects), stack, breakpoint list all visible at once. I.e. something comparable to this.