DEV Community

Sergey Kislyakov
Sergey Kislyakov

Posted on

Should I learn Vim (or its keybindings)?

I wonder does Vim really boosts up your productivity. My IDE has the keybindings so I wonder should I give it a shot or not.

Oldest comments (25)

Collapse
 
jenc profile image
Jen Chan

I just started a job where I had to learn it a month ago. My boss recommended vim-adventures.com or something like that. tbh I never got past level 3 but that was everything I needed to know to be semi functional. I can really see the benefits being going to any computer and being able to code right away!

Collapse
 
nektro profile image
Meghan (she/her)

If you want to edit text on the command line on Linux at any point I would go for it. If it doesn't pertain to anything you work on, I don't think there's really anything else you'd get out of it.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

I started learning vim a while back, and I've never regretted it. I can be so much more productive in it in the command line than I can w/ programs like nano. Sometimes it's even faster than my IDE for particularly complex changes.

That said, vim isn't for everyone. Try it and emacs both - they're quite different, but allow the same degree of uber-productivity once you master it - and then decide which one you like better and learn it. You won't be sorry!

(In case anyone wonders, I hate emacs personally...but I recognize that as my own preferences and way of thinking! I have never known anyone that liked both emacs and vim, but one can almost invariably master one or the other.)

Collapse
 
jaysoifer profile image
Jonathan Soifer • Edited

Hi,

Time to update this answer.

There is an emacs version called Spacemacs with a vim editing mode.

It’s a distribution aimed at those of us who love vi and its keybindings and the power of emacs as an “operating system”.

So #1: it is possible to like both. I see absolutely no reason why not.

And, based off of that, I don’t understand what you mean by “almost invariably”.

So #2: yes. You can master both. There is no evil demon that formats your HD if you try it.

Collapse
 
alanmbarr profile image
Alan Barr

I like vim keybindings because it helps me minimize moving my wrist and using the mouse a lot. Ran into some wrist pain and I rarely have issues now. I only use maybe 1/10 of the power of vim as it takes quite a bit of memory to remember everything it does.

Collapse
 
dimitri_acosta profile image
Dimitri Acosta • Edited

I've been using vim for almost a year now and even when I am not workin with vim I use a vim plugin form my other editors or IDE.

Collapse
 
eljayadobe profile image
Eljay-Adobe • Edited

I use Vim. I think it is great... for me.

Give it a try. If you like it, great. If it doesn't work for you, that's understandable.

You will want to take a quick look at this Tutorial.

I found this to be a helpful Cheat Sheet. (Hmm, although that one is lower resolution than the image I have. UPDATE: here is a higher resolution version.)

Collapse
 
defman profile image
Sergey Kislyakov

I'm using this cheatsheet for now. I already navigate and edit my code with Vim keybindings and I kinda like it.

Collapse
 
sparxmith profile image
Eric J. Falgout

I'm a Vim fan boy but still have a lot to learn.

Vim is almost mandatory if you need to do alot of SSHing into cloud servers for editing files and such.

It is great if you have the time to learn it in depth.

It is not great if you cannot spare time to breaking your Flow to look up commands.

Collapse
 
matthutchison profile image
Matt Hutchison

It's useful to have a more full-featured editor when having to work from the command line. If you don't work from the command line often (I do), or you're already comfortable with another tool, then it may not be worth it. If you do / want to, it's a good tool to have in the box. I never got the hang of emacs, but either one should serve someone in that boat well.

Collapse
 
matthutchison profile image
Matt Hutchison

Addendum: I use the vim extension in vscode on a Mac and I love it because I barely have to touch a mouse. It is by no means mandatory in IDE-land though.

Collapse
 
bobcoggeshall profile image
Bob Coggeshall • Edited

I learned VI around 35 years ago. Yes, you will need to spend a little while becoming as productive in what ever editor you are currently using... Other editors have come and gone. It is still my personal choice and I am still learning new tricks to become more productive in it. I am very impressed it is still so popular to this day. sudo you're welcome.

Collapse
 
eduardort profile image
Eduardo Reyes

It really isn't about the keybindings, it's more about the modal editing. If you learn vim like a mindset it's gonna be much much better (the keybindings are a big part of vim though)

Collapse
 
argherna profile image
Andy Gherna

Vim is a tool like grep awk or Python. The question I think should be asked is what do I gain from learning it.

Collapse
 
argherna profile image
Andy Gherna

That said, my .vimrc file dates back to Aug 2000 so I may be what you’d call “old and grizzled”. I took a few years off from vim to see what I was missing in emacs which is also good. It comes down to athe question of what is the right tool for the job to me. Sometimes it’s vim. And sometimes it’s emacs. And again sometimes it’s something entirely different.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I use vim for small things in the console, or when over a network connection. Beyond a few basic commands I don't know much, and would never use it for more than minor changes. It also tends to pop up for some git commands.

Minimal commands I use frequently:

  • i to edit a document
  • ESC to get to non-edit mode
  • dd to delete a line
  • d + down_arrown to delete a couple of lines
  • ESC to enter commands
  • :w to save the file
  • :q to quit, and q! to quit without saving
  • :m-2 to move a line up one, useful for reording git commits
Collapse
 
5n4p_ profile image
Andreas Schnapp • Edited

I have started learning how to use vim the right way by reading "Practical Vim" by Drew Neil. I really enjoyed the reading and it changes the way of thinking while editing text completly.

While I always love coding it's even more fun by editing the vim way (ok most tasks i'm using a IDE with vim mode).

But there was also some tasks which feels like hard work. Where you have to edit many places and do some boring but error prone changes multiple times.

Today I love having the same situation. I make the change one time in a very clear and reproducable vim movements/commands sequence. And then I can easily do the "hard work" by using the first sequence multiple times as a macro.

It take some time to master vim but for me it was quite fun and i'm love to find new ways of beeing more productive every day.

Collapse
 
niorad profile image
Antonio Radovcic

Yes it does.

Not having to reach for the arrow-keys is one of the big advantages.

And I can't code without things like ci" (delete contents of quotes and place cursor between them. also works for <> {} '' etc.) or "dit" (delete contents of Tag).

The cool thing is, that there are VIM-plugins for all popular editors/IDEs. They are mostly a compromise, and some are better (EVIL, Sublime's Vintage), some are worse (IntelliJ), but you'll be more productive nonetheless.

But it will take some time. Use VIM for a couple of weeks, do the VIM-Tutorial, disable your arrow-keys and look up commands if you find that you are repeating certain actions (theres always a shorter way).

Collapse
 
jaysoifer profile image
Jonathan Soifer

Apparently many people already talked about how the productivity factor is actually related not only to keybindings but also modal editing.

That being said, one of the things I enjoy the most about Vim is the amount of memory required by it and its start up time.

A well configured Vim is instantly available and uses almost no memory at all. It is cheap to start and quit, in all senses.

Not only that but if you’re also doing Ops (or DevOps for that matter) and you need to ssh to a server... vim is pretty much always available and ready.

So the answer is Yes. Vim does boost our productivity but, as with anything in life, there’s a learning curve that doesn’t necessarily make sense to everyone, specially to those new to the industry*.

  • Why? Because when you’re already trying to understand how a http request works or why do we need so many package managers and all those build tools, worrying about keyboard shortcut will only make it worse.

I love Vim. I used it pretty much everyday, either by itself or inside of Emacs (Spacemacs) which is my main editor today.