My wife was unimpressed by Vim
My wife was unimpressed by Vim
export EDITOR=nano.
But (neo)vim is amazing so there is no need to do that.
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 ;;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
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.
make several limes with the number 0
visual mode mark them and do g ctrl a
gets 'em every time!
My jaw literally dropped reading that.
I think it’s time to go outside.
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
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
:23 to go to line 23.
10j. Or 11 lines with 11j. Or “Delete the line I’m on and the six below it” with d6j.