Why I like Vim so much [video]
youtube.com
youtube.com
* Vim
https://github.com/terryma/vim-multiple-cursors
* Atom (I'm not sure if it's the same functionality)
https://atom.io/packages/multi-cursor
https://www.lynda.com/Web-Development-tutorials/Selections-m...
* Sublime
https://stackoverflow.com/questions/14963775/multiple-cursor...
EDIT: Well it seems like Sublime has had this feature since at least 2012. I suppose I should have considered text editors besides Vim, and I might have known sooner. I'll leave this post in case there are others as narrow-minded as I am ...
Although I've stopped using sublime text since, sublime text really drove forward the gui text editor market.
Other than that, I seem to remember having problems with some movement commands (screen forward I think), though that was probably due to the keybindings more than the extension itself.
I've scripted and dabbled in VIMs code before, your comment just motivitated me to actually submit bugs to the tracker and to try and fix them self!
I think that registers should mostly work pretty well too ("ayy and then "ap work fine for me).
I don't know if this is what you're talking about, but we have some ctrl+d/ctrl+u bugs that have to wait for upstream changes :/ https://github.com/VSCodeVim/Vim/issues/1348
I saw that you said you'll submit bugs to the tracker, so I'll see those then :)
We've been pretty active about adding features/fixing bugs:
Recently, I've found occasion to work in other languages, and after dabbling in vim for a little while, I switched to VS Code. After gaining a little bit of enlightenment about what a comfortable developer workflow looks and feels like outside of the C# ecosystem, I've had three key insights:
- I actually appreciate the transparency and flexibility of delegating so many tasks to command line tools that can be run via scripts and task runners. Thing still aren't quite as discoverable as they are in VS, but I have enough general dev experience that I know what to Google for.
- I still don't care for vim. Maybe someday, when I want to invest time in becoming a keyboard Jedi.
- Most importantly: it turns out the only feature I really, really missed leaving Visual Studio was IntelliSense. Not just semi-intelligent word completion, but real IntelliSense, with inline documentation, snippets and parameter info. I don't know why anyone who has ever taken advantage of it would go without it if given the option - it is a bicycle for the programmer's mind at every skill level, from early discovery of a language's syntax and standard libraries to extreme proficiency.
Intellisence never gets in the way in my experience. Rather the lack of it gets in the way.
There's piles of marginally useful stuff in IDEs, but I don't understand how this entire thread hasn't mentioned debuggers or continuous type checking.
I know you can setup vim to do a lot, but this comes out of the box in IDEs.
That's why I (and many others, I'm sure) don't mind that I don't have a debugger built into vim - it's just in another tab.
As for constant type checking, it too is available via plugins.
I took a emacs class at a very good tech conference and I was 1 minute late and missed the key bindings changes the instructor had made as the first step. I was unable to follow anything for the next 30 minutes and walked out and got my money back. (This is much more an issue with the instructor than the editor).
I do like both of them and try and learn them every few years but I also try and be flexible across as many editors as I can be so I can help as many of my junior engineers out as possible. But jumping on someone's vim or emacs is like switching to dvorak. It's also pretty toxic for pairing unless everyone has agreed on setup.
After being productive in Vim, I can't go back to using the arrow keys and the mouse. It feels like I lost a hand.
But I still push the arrow keys from time to time, you know, to make sure they still work.
I couldn't stand IdeaVim, the one for the Jetbrains IntelliJ platform - felt very buggy. Such as when you open a modal and it remains in Normal mode so you can't enter text.
Currently using https://github.com/VSCodeVim/Vim when using VSCode which is better but still got some rough edges.
Despite a fair bit of use and study - mostly using neovim - I feel that I haven't got as much from vim as I'd expected or hoped. Switching from Normal to Insert mode - even when you get good at the one-time Normal mode commands - doesn't always elegant.
There's all sorts of configurations and plugins that try to plug the gaps, but it's such a huge effort to assemble them all. For example, just installed https://github.com/terryma/vim-multiple-cursors today to attempt get the elegant multiple selection of modern text editors.
I think this is a real valueable thing, this feeling. I wouldn't have to justify using one of those editors with any of the usual reasonings that get pulled by the adherents of these editors. The feeling and it's side effects are awesome enough.
Only reason I use another editor which doesn't suck instead is that I value "macness" even more.
It all depends on your style of development, and mine most definitely is NOT conducive to vi (or emacs).
notepad [filename]
type stuff
ctrl+s
Yeah, notepad isn't good, but it fits your specifications.I'll be surfing the web, type gg, then pause for a second after that doesn't work.
As far as learning curve, do vimtutor but use the arrow keys. They don't use arrow keys because the computer didn't have one then. It doesn't make sense not to use it now.