DEV Community

Discussion on: Vim: from foe to friend in 9 minutes

Collapse
 
gilad profile image
Gilad Tsehori

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?

Collapse
 
omerxx profile image
Omer Hamerman • Edited

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.

Collapse
 
flrnd profile image
Florian Rand • Edited

There are a few interesting answers about that on this thread:

stackoverflow.com/questions/14410/...

Collapse
 
omerxx profile image
Omer Hamerman • Edited

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.

Thread Thread
 
flrnd profile image
Florian Rand

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.

Thread Thread
 
omerxx profile image
Omer Hamerman

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

Thread Thread
 
flrnd profile image
Florian Rand

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.

Thread Thread
 
omerxx profile image
Omer Hamerman

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...

Collapse
 
gisu profile image
sascha fuchs

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.

Collapse
 
omerxx profile image
Omer Hamerman

I agree with everything.
In regards to having a Vim mode in your IDE, personally I don't like it;

  1. I found it has its own limits (as expected) and you're missing some Vim essentials with any of them.
  2. Having the GUI available always tempted me to use it and not force myself into making Vim a second nature.
  3. I wrote about it, but the resource consumption IDEs like PyCharm or IntelliJ are using is ridiculous...

Combining these I decided to stay with Vim alone, and never looked back

Thread Thread
 
gisu profile image
sascha fuchs

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

Thread Thread
 
omerxx profile image
Omer Hamerman

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...

Collapse
 
siddharthshyniben profile image
Siddharth

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.

Collapse
 
omerxx profile image
Omer Hamerman

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.

Collapse
 
xexyl profile image
xexzy

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.

Collapse
 
omerxx profile image
Omer Hamerman

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