I went helix -> vim -> emacs -> kakoune -> neovim, super interesting to see how people's experiences differ
Hexarei
Most of the productivity comes from the motions; Being able to jump around the text incredibly fast, combining motions with actions and repeats, it's unparalleled in the sheer speed. I can delete an entire function with the same basic pattern Id use to delete a word.
daf
-> Delete the current function my cursor is on
daw
-> Delete the current word
d3af
-> Delete the next three functions
Stuff like that, but with everything
Name a downside, I'll tell you how you're probably wrong
I blame my autism
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
.
I have most of the features of an IDE in my neovim config; name a feature and there's almost certainly a plugin for it!
Those are just a few small examples. One of my favorite things that vim enables for me is working with text objects. Things like functions, variables, classes, conditionals, paramters... Etc. Any action works with any text object - Want to jump to the next function in the file? Copy everything inside of a conditional? Cut everything up to (but not including) the nearest capital D on the line? Delete just the word your cursor is in the middle of (and one of the spaces around it)? Delete the current line and the N lines below it?
The motions make editing code incredibly fast, and I still have modern features like variable completion, copilot, intellisense, 'jump to definition', "hover" information, fuzzy search in project... Name a feature. I highly recommend giving it a closer look for stuff like that.
Not "move the current line of code", but instead "jump the cursor a number of lines"
Yes, absolutely. And I refuse to let my day be anything else! :-)
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
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.
As a software dev, they're significant parts of what I do
You can get pretty close to the same experience with https://github.com/mfussenegger/nvim-dap, any others?