DEV Community

loading...

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 Author

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

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

stackoverflow.com/questions/14410/...

Collapse
omerxx profile image
Omer Hamerman Author

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 Author

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 Author

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
sayanarijit profile image
Arijit Basu

Re commenting here for others with the same doubt.
dev.to/sayanarijit/comment/ck38
dev.to/sayanarijit/comment/ck3c

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 Author

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 Author

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
travisboss profile image
Travis Boss

standards

This comic might be a good way to look at it.

Collapse
omerxx profile image
Omer Hamerman Author

Trying to understand whether this is generally about IDEs or about ways to learn it...
If it’s IDEs, well, don’t know if Vim can be standard but the concept can (and has) be adopted by similar tools. As said in the post, it’s not easy, it’s demanding and most people would drop it soon after they start. All I have to offer is look passed the terrible starting point.

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.