I've never used Vim, so I don't speak from experience. There is this one thing that has been bothering me for some time, and I didn't understand yet: if Vim is so awesome, how come no other editor has adopted some of its capabilities? As you mentioned, VSCode has done it (to some extent) but not to the fullest, just as a mode.
I mean, if some other editor\IDE would implement these awesome features, why wouldn't Vim users change their editor?
Well, it's a good question and I think it comes down to this:
Most IDE's want you to learn their language, syntax and shortcuts. They are all inherently adjusted to modern desktops using mouse and arrow-based keyboards. They want to lure you into using them and sticking with them with shiny features and colors.
Vim is hard. It takes time and effort, other IDEs can't afford to lose you just because they have a "vision" of how productivity should be.
On top of that, even if one of them were to adopt everything Vim does, it'll never be as low-resource requireing as Vim, and will never become a standard to be found on any Unix server to use...
I'll take the last half sentence of the accepted answer:
"Modal interface in the hands of an experienced and non-fickle person can be extremely efficient."
Meaning, on any other case you can harm yourself or get frustrated (Vim is hard), but with the right method and learning curve, you can become incredibly productive and satisfied.
But again - it takes work.
Absolutly, I'm a neovim user myself. Not an expert but after time I find "easier" working with vim/nvim than other editors. That stackoverflow thread is interesting because, in reality, modes and modal editors are precisely against every usability principle.
Hence the question - how do you explain the adaptation of vim and its modern progress?
And do you know any other modern IDE that comes close to its abilities?
VScode vim mode doesnβt count.. these are still vim modes in a prettier GUI
The key question here is, why do modal editors exist in the first place? In the early days of Unix before mouses were widely used, all the editing was keyboard-driven, from moving the cursor around the document to more complex operations, like string substitution.
This answer
if Vim is so awesome, how come no other editor has adopted some of its capabilities?
Because when mouses started to be widely used, there was no point in modal editors. But again, there is a reason why vim or emacs survived all these years, they are incredibly powerful.
As for modern editors, well, actually there is Oni.v2.
I get that, I do. But the thing is that while it isn't explicitly mentioned, mouses are convenient but are key in making us lazy, slower and thus less productive.
Heck, even arrows are "banned" in Vim...
So yeah, a mouse is easier, and if you don't want to learn too hard it's obvious why would you use it.
But for those of thus that care about productivity and satisfaction, it can't be achieved with other IDEs, no matter how familiar you are with their own set of shortcuts. In Vim it's a philosophy translated into concepts, rather than a few nice keyboard shortcuts.
Vim is awesome, but he has the hardest learning curve. If you want to learn Vim you have to deal with frustration, if you can do that you can use the best code editor that doesn't set any limits.
VSCode, Sublime, PHPStorm and Atom all have their Vim plugins.
For me, Vim is still a code editor, an IDE has certain advantages for complex projects. From this point of view it is better for my purposes to combine IDE with Vim Commands. Outside the IDE I work with Vim.
I don't worry so much about resources with the IDE, I use Docker for JS stories that eat more resources :D
Throughout my work, I found replacements for IDE features like static code analysis (Python and Go have some incredible Vim plugins for that), even a debugger with breaking points and everything.
Yes, in the end of the day I understand why some devs would choose IntelliJ with their entire environment pre-configured, hooked up to Git and what not, to me it looks lazy and not knowing what's under the hood (git / env vars / any other operational stuff) but who am I to judge what helps people write code and deliver...
how come no other editor has adopted some of its capabilities?
I think the reason is it's very hard to do so. Vim has been around for really long and it's features have slowly evolved to what we see today. Replicating these features would be a difficult task β it would be an awesome feat if editors could.
Also, most editors aren't designed with vim compatibility from the ground up, so it gets hard mixing vim and non-vim.
I've never used Vim, so I don't speak from experience. There is this one thing that has been bothering me for some time, and I didn't understand yet: if Vim is so awesome, how come no other editor has adopted some of its capabilities? As you mentioned, VSCode has done it (to some extent) but not to the fullest, just as a mode.
I mean, if some other editor\IDE would implement these awesome features, why wouldn't Vim users change their editor?
Well, it's a good question and I think it comes down to this:
Most IDE's want you to learn their language, syntax and shortcuts. They are all inherently adjusted to modern desktops using mouse and arrow-based keyboards. They want to lure you into using them and sticking with them with shiny features and colors.
Vim is hard. It takes time and effort, other IDEs can't afford to lose you just because they have a "vision" of how productivity should be.
On top of that, even if one of them were to adopt everything Vim does, it'll never be as low-resource requireing as Vim, and will never become a standard to be found on any Unix server to use...
I think that explains it more or less.
There are a few interesting answers about that on this thread:
stackoverflow.com/questions/14410/...
I'll take the last half sentence of the accepted answer:
Meaning, on any other case you can harm yourself or get frustrated (Vim is hard), but with the right method and learning curve, you can become incredibly productive and satisfied.
But again - it takes work.
Absolutly, I'm a neovim user myself. Not an expert but after time I find "easier" working with vim/nvim than other editors. That stackoverflow thread is interesting because, in reality, modes and modal editors are precisely against every usability principle.
Hence the question - how do you explain the adaptation of vim and its modern progress?
And do you know any other modern IDE that comes close to its abilities?
VScode vim mode doesnβt count.. these are still vim modes in a prettier GUI
The key question here is, why do modal editors exist in the first place? In the early days of Unix before mouses were widely used, all the editing was keyboard-driven, from moving the cursor around the document to more complex operations, like string substitution.
This answer
Because when mouses started to be widely used, there was no point in modal editors. But again, there is a reason why vim or emacs survived all these years, they are incredibly powerful.
As for modern editors, well, actually there is Oni.v2.
I get that, I do. But the thing is that while it isn't explicitly mentioned, mouses are convenient but are key in making us lazy, slower and thus less productive.
Heck, even arrows are "banned" in Vim...
So yeah, a mouse is easier, and if you don't want to learn too hard it's obvious why would you use it.
But for those of thus that care about productivity and satisfaction, it can't be achieved with other IDEs, no matter how familiar you are with their own set of shortcuts. In Vim it's a philosophy translated into concepts, rather than a few nice keyboard shortcuts.
This is all IMHO of course...
Vim is awesome, but he has the hardest learning curve. If you want to learn Vim you have to deal with frustration, if you can do that you can use the best code editor that doesn't set any limits.
VSCode, Sublime, PHPStorm and Atom all have their Vim plugins.
I agree with everything.
In regards to having a Vim mode in your IDE, personally I don't like it;
Combining these I decided to stay with Vim alone, and never looked back
For me, Vim is still a code editor, an IDE has certain advantages for complex projects. From this point of view it is better for my purposes to combine IDE with Vim Commands. Outside the IDE I work with Vim.
I don't worry so much about resources with the IDE, I use Docker for JS stories that eat more resources :D
Haha understood :)
Throughout my work, I found replacements for IDE features like static code analysis (Python and Go have some incredible Vim plugins for that), even a debugger with breaking points and everything.
Yes, in the end of the day I understand why some devs would choose IntelliJ with their entire environment pre-configured, hooked up to Git and what not, to me it looks lazy and not knowing what's under the hood (git / env vars / any other operational stuff) but who am I to judge what helps people write code and deliver...
I think the reason is it's very hard to do so. Vim has been around for really long and it's features have slowly evolved to what we see today. Replicating these features would be a difficult task β it would be an awesome feat if editors could.
Also, most editors aren't designed with vim compatibility from the ground up, so it gets hard mixing vim and non-vim.
I agree. And I have to say most of them do adopt a vim-like plugin at least for basic motions. See Jet brains editors, VS code, Atom, etc.
The irony is that they have. EMACS has a vi mode. Apparently you didn't know that.
Look up EMACS viper.
Also bash has a vi mode. There probably are others.
So...basically they have.
Hi, not sure a comment on what is this specifically, but you are 100% right. The motions are adopted by lots of tools for convenience