Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I’ve been a long time vim user, and I honestly never really bought into the efficiency claims. That gets repeated over and over, but If you’re a slow typer then no editor can really make much of a difference, and development in reality is a lot of reading code and thinking about code when it comes down to it.

I’ve never used it because I thought it would make me some lightning fast super developer. I’ve always used it because it’s simply fun. It’s makes editing into this interesting sort of game. You start out with a simple set of skills from vimtutor, and inevitably brute force your cursor around the screen for a while. Little by little your movements become more complex and efficient, and the journey to figuring that out is fun and interesting.

It makes you think about typing in a totally different way. It makes it into a some kind of interesting game where your goal is to accomplish a task in the fewest keystrokes possible. That problem solving aspect scratches an itch inside my brain that has always kept me coming back. It’s just fun, and I don’t think that gets talked about enough

 help



That's fair, although now and then I have to do some repetitive task and using bufdo or a macro has saved a decent amount of time. And compared to something like notepad, all the little details probably save time. My average time savings has probably increased significantly after I stopped spending a lot of time creating custom vim scripts and syntax files.

It is fun because it is fluent. vi has a language.

If I spend more than a couple minutes in an arrow-keys-and-mouse text editor, I often find myself unconsciously reverting to vi-language and getting confused. "Oh, I want to go change that sentence up the page that starts with 'Looking at...'" so I type "?Looking at" into the text editor and then stare at it for a few seconds before hitting backspace and reaching for the mouse like a caveman.

I like to think of it more like a bytecode.

I like vi/vim, but it gets me all too frequently because I'm not precise enough of a typist. I'm busy typing away and I hit the wrong modifier key or hitting caps lock and I end up pulling things up or making changes that I never intended to make. Worse, in the split second after it happens and my muscle memory tries to correct it my immediate intuition of what mode I was in is wrong or which modifier key I'm pressing or caps lock is on and I only make the situation worse. Any improvements in performance because of the quick key interface are long gone.

This could probably be solved with a better keyboard

It's very common to disable caps lock or rebind it to something else (e.g. Esc for even more ergonomics)

I don't think it makes me more efficient at writing code. Its because the act of coding is like 80% reading existing code, only rarely adding new code. You spend far more time moving around and exploring the code, and in vim the keys to do that are single keypresses, or sequences like `]p`. Every other non-modal editor requires you to hit chords like Ctrl-Shift-F to move around, because the "easy" keys are all taken up by "add this character to the buffer", 100% of the time.

Vim is definitely more efficient when it comes to navigation and manipulation (esp via macros), which are the two things we do the most as programmers.

The added benefit I found is that Vim’s purely keyboard based design is much, much easier on the wrists. Heck, I pushed myself to learn Vim because I started to feel wrist pain due to KB and mouse switching.


vi was pretty efficient in the (terminal) era it launched in.

specifically, the keys used by vi were there on every (terminal) keyboard.

In comparison, emacs heavily depended on modifier keys, which were pretty non-standard and if found, frequently were in different places on each keyboard.

That said, more complex editing tasks using modes/automation/etc might be more efficient with emacs.

personally, I have "thresholds". quick/dirty can be vi, more involved goes to emacs. same with scripting, quick/dirty shell script, more involved to something like python. ymmv


> never really bought into the efficiency claims

Macros, dude.

It's a bit annoying to become disciplined in text structure/regularity to have macros work flawlessly, but it's a bliss afterwards.

And then... recursive macros.

(I know Emacs has better macros but vim macros are way easier and fun for everyday use).


I use vim because it's addictive. And that's the highest compliment I can think of when it comes to user interfaces.

My fingers just love it. Every time I need to jump to a non-modal editor my muscle memory screams: "WTF?!"


    I’ve been a long time vim user, and I honestly never really bought into the efficiency claims. That gets repeated over and over, but If you’re a slow typer then no editor can really make much of a difference.

    Little by little your movements become more complex and efficient, and the journey to figuring that out is fun and interesting.
The slight contradiction in your comment has a lot of truth in it.

    It’s just fun, and I don’t think that gets talked about enough
Yes yes yes. Vim can absolutely lead to more efficient text editing, but I agree it has more to do with the fun journey than with typing speed.

vi definitely doesn't scratch that "itch" for everyone in the same way. But for me, it's as though I found a cheat code. Getting better at vi feels like getting better at a game - only practicing this game makes you better at any number of tasks that are relevant to your daily work.

(although if you also want to get better at typing speed, there are surprisingly fun roguelikes on Steam for just this purpose)


> practicing this game makes you better at any number of tasks that are relevant to your daily work.

Vi key bindings don't apply outside of vi


Haha. I spent a significant amount of time getting vim keybinds everywhere, and eventually had to make exceptions for certain software. But, I had my share of making exceptions I guess and got frustrated when I couldn’t map Win+L in Windows to anything and I decided to solve it once and for all. Got a QMK programmable keyboard and now I use hjkl everywhere I would use arrow keys. Did it save me time? No. After 8 months of usage on split keyboard I am back at my original speed and don’t need a cheatsheet for my symbols layer, but it made me less frustrated and feel more free. I don’t need a AHk script or key remapping and their restrictions, this is wayy easieer especially with live VIA configurator.

That's not true at all. Many readline and terminal based clients support vi bindings, you just have to enable them. e.g. stuff like psql.

The shells themselves also support vi binding.

Outside of the terminal tools like Vimium add support to browsers and many other interfaces.


I learned vi key bindings in rogue, hack, and moria (before numpads were common for that binding to be default) before I learned them in vi.

Thankfully my work applies inside vi.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: