1. 21

  2. 4

    After ten years, Vim is somehow ingrained in my mind. I think Vim when I’m editing text. It has become yet another natural language to me. I’m looking forward to the next ten years.

    Wonder if the author picked up on that entirely by accident. The strength of Vim is exactly that: you work in a composable language, telling the editor what you want to happen!

    1. 2

      When I first read the title, I thought it was going to be more of a beef than the chronic it turned out to be. In any case, it actually surprises me that after ten years using modal editing he actually says that:

      There’s a steep learning curve in Vim and seeing all those modern IDEs become better at understanding the user’s intent, editing text became way easier and faster in general.

      I did not find vim to have a learning curve that steep: it can be painful at first, but you are probably fine the second week already, and being productive after a single month. And even if it is easier at first to use an IDE, I have never seen anyone be faster working in PyCharm than someone in vim, for example.

      1. 1

        Being productive after a single month of using Vim? It is, or might be true. But how much productive? After 3 years of using Vim (ime), I think I’m nowhere productive as I would be in perhaps 7 more years of using it. It’s not that Vim has a steep learning curve, but rather it offers so much that even with 10 years usage, you do not fully understand it’s power. And that is what the author is talking about.

        1. 1

          Absolutely, after all practice makes perfect, especially in something like vim where muscular memory is key. What I meant when I said you can be productive in a month is that you can actually use it in your workflow: in my experience, after a month using Emacs you are probably still overwhelmed and cannot fully integrate it in your workflow (imho has a much steeper learning curve).

        2. 1

          Then again you can always have vim like modal editing in PyCharm, and be doubly as productive!

          1. 1

            Oh c’mon that is obviously cheating in this scenario.

            (/s, but I meant vanilla IDE shortcuts like OP for comparison!)

        3. 2

          I think I started using vim bindings (not necessarily vim proper most of the time) in earnest around 7 years ago, before that I still used it every time I was on a Linux/BSD console, but not for real work. Since then I’ve always had it enabled in IDEA or QtCreator.

          I wouldn’t say I’m using its full potential, I hardly use the non-word modifiers, (from his examples: daw/dw yes, cas never). On the other hand the line handling of normal editors has never really clicked with me (e.g. using pos1/end and shift/up-down to delete and move lines). I also hate hjkl, but I’m not a 10finger touch typist, I have my own weird self-taught few-finger-touch-typing system as many programmers do. (works fine after a week or so with a new keyboard)

          I still am planning to -at some point- learn how to properly use emacs, but so far I’m 100% happy with the vim way and I feel a alot quicker than I was before, but I’ve switched editors every few years and some keybindings are different all the time or it might not even have a certain featue (like the multiple-cursor thing for editing many lines, I didn’t know that one before Sublime).

          1. 1

            I have my own weird self-taught few-finger-touch-typing system as many programmers do. (works fine after a week or so with a new keyboard)

            I’ve never heard this. Do you know of any survey or writeup on that kind of thing?

            1. 2

              No, just scour HN or any discussion board for threads about touch typing. I know I’ve read it often and see a lot of coworkers do it. Relatively fast, not looking at the keyboard and definitely not using 10 fingers :)

              So yes, anecdata. Maybe many was misguided, sorry.

          2. 1

            Tabs: I know how tabs work, but all the typing feels clunky. That’s why I never extensively used them. Instead, I mostly use multiple terminal tabs or an IDE with Vim bindings for bigger projects.

            Navigating them gets much easier when you bind some keys. I use

            nnoremap <A-Right> :tabnext<CR>
            nnoremap <A-Left> :tabprevious<CR>

            but you might like something which keeps your fingers on the home row.