Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    B

    Bram Moolenaar

    moolenaar.net · Personal blog · on HN since 2008

    Bram Moolenaar, creator of the Vim editor, shares his editing advice and Vim history, including the Charityware project.

    Visit blogHN submissions
    Open Source & LinuxProductivityProgramming
    What HN says

    HN commenters cite his "Seven habits of effective text editing" as a source of good insight on learning Vim, though one warns against lingering in phase 1.

    Stats for nerds
    37HN people shared it
    17linked in comments
    643story points
    Jun 2025last shared
    2009people per year2025

    Top posts on HN

    1. 1
      Seven habits of effective text editing (2000)
      25 people · 624 points · first shared 2008 · 237 comments on HN
    2. 2
      Seven habits of effective text editing
      1 person · 8 points · first shared 2013 · Discussion on HN
    3. 3
      Vim fortunes
      1 person · 6 points · first shared 2013 · 12 comments on HN
    4. 4
      The Continuing Story of Vim (2000) [pdf]
      1 person · 5 points · first shared 2022 · Discussion on HN
    5. 5
      Habits 2007.pdf
      2 people · first shared 2023
    6. 6
      Homepage
      2 people · first shared 2023
    7. 7
      Bright
      2 people · first shared 2023
    8. 8
      Zimbu
      1 person · first shared 2023
    9. 9
      Albums
      1 person · first shared 2023
    10. 10
      Charityware
      1 person · first shared 2012

    What HN people wrote when they linked it

    • e12eMay 2016

      > indexes everything

      So should your text editor (and/or it's companion programs)

      > and provides superior auto-completion.

      See above. Superior is a bold claim, superior out of the box for "strongly" supported languages, perhaps? (Eg: one way of working with java in vim is to use eclipse for extracting some information about a project[1])

      Personally I'm more familiar with vim, than with Emacs -- arguably the main difference is that Emacs has one standard and sane scripting language (lisp), while vim doesn't (I'm very happy a lot of masochists work tirelessly to provide vim plugins for everything I need (and a great deal I don't) -- but I think it's hard to argue that vimscript is a "good" language. And having other bindings (eg: ruby, python) is a bit of a mixed blessing)).

      But what they have in common, is a strong focus on making it easy to automate transformation of text. Any kind of text. With any kind of automation, via commands. As such they empower a continued process of improving the process of writing and editing.

      I like Moolenaar's (vim's creator) short text and expanded talk on 7 habits of effective text editing:

      "7 Habits For Effective Text Editing 2.0":
      https://www.youtube.com/watch?v=p6K4iIMlouI

      "Seven habits of effective text editing":
      http://www.moolenaar.net/habits.html

      I often feel that modern IDEs with typical "modern" languages, tend to trap you in a certain way of working that is "with" the IDE, that tend to be counter-productive if that "one true…

    • antileetOct 2010

      While it was well written, and with best intentions, I don't think there is any real significant "tips" to increase "productivity". All things aside these are just some best practices sprinkled with some examples. This is similar to when your parents tell you to brush your teeth and floss daily.

      I haven't been programming a lot but here are some ideas that I've found, in similar vein to the parent article.

      1. Watch Bram Moolenaar's talk or read his notes - http://www.moolenaar.net/habits.html . Essentially learn how to use your text editor, as that's the thing you're going to be spending a good deal of your time in. In three steps, his suggestion is - Find what you're doing repeatedly, automate it and bind it to a key, make it a habit.

      2. use a good version control system. Use a DVCS like git/mercurial/bzr and make lightweight branches for even the tiniest little features. That'll allow you to multitask like crazy! If you start properly using branching, you can write more code quickly and safely and switch between contexts.

      3. Make sure your build system is optimal. If you spend too long waiting for builds to take place, maybe you can explore options to make it better.

      4. The most important productivity secret imo - ACTUALLY WRITE CODE. Don't think about writing code, don't read blogs about writing code, don't follow twitterers who write code. Most importantly, don't get distracted and idle away when you're trying to write code.

      I have some amount of mastery over my…

    • layer8Mar 2022

      I’d encourage you to apply the three-step process presented in [0] (there’s also a video [1]), which is actually not specific to Vim:

      1. While you are working with software tools, keep an eye out for actions you repeat and/or spend quite a bit of time on.

      2. Find out if there is a command (or macro facility etc.) that will do this action quicker. Read the documentation, ask a friend, or look at how others do this.

      3. Train using the command. Do this until your fingers type it without thinking.

      This means that you can learn new commands only as the need comes up by observing what you do. Which commands you will want to learn thus depend on the operations you are frequently doing and/or that cost you a lot of time.

      As I said, that strategy is applicable in general. Tools however differ in how well they support it, e.g. in terms of available commands and facilities.

      You could start applying that strategy in VSCode (which I’m not familiar with, by the way). If it works well enough, great. If you find it limiting, switch to Vim, Emacs, or some other IDE that serves your needs better.

      [0] https://moolenaar.net/habits.html

      [1] https://youtu.be/eX9m3g5J-XA

    • mbagNov 2017

      What I found about Vim is that it requires a bit of mind shift, compared to other IDEs. I came to the game very late, but yeah, I've been editing with Vim for the past 6-7 years.
      My primary motivation when moving to Vim, was that I didn't like using mouse and then running back to the keyboard to write text. Now, it might not seem like much time is wasted during this shift, but imagine doing this many time during work day and it adds up. Furthermore, I did a lot of editing on remote systems, which were headless, so you didn't get graphical editors.

      When learning Vim it's not wise to learn about everything at once. start slow at first, lear a few commands, then when you find you are doing something many times, try to find way to optimize it. Try not to use mouse for highlighting, use different visual modes instead (visual line, visual block are great).

      Here is article be the Vim author which can give you some hints on how to edit files: http://moolenaar.net/habits.html

      And as he mentions there, it can be applied to making your editing more efficient with other editors as well, so it's not a waste of time :)

    • cabaconAug 2013

      vimtutor is pretty good, actually.

      Outside of that, http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-nouns-and-modifiers/ has a nice explanation of the editing worldview, which ties in with Steve's quote in http://learnvimscriptthehardway.stevelosh.com/chapters/16.html, "The idea of operators and movements is one of the most important concepts in Vim, and it's one of the biggest reasons Vim is so efficient. We're going to practice defining new motions a bit more, because extending this powerful idea makes Vim even more powerful."

      Check out http://www.moolenaar.net/habits.html, http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118, and maybe http://vimcasts.org/episodes/archive?

      I've been using it for about a decade, so I think I've lost the beginner's mind to evaluate whether these are really the right entry points. Lots of people are passionate about vim, though; some googling should find you the exercises that will help you the most.

    • enriqutoAug 2023

      Really sad to hear this... My first donation as a late teen to free software, was to the ICCF Uganda, thanks to vim's charityware license. It was maybe around 1997 or 98. Later versions of vim used a formal free software license, but still off-band encouraging donations to the ICCF. I've always been a bit skeptical to the whole concept of charity, but I respected Bram Moolenaar so much due to his work on vim that I trusted his judgement. I kept donating to the ICCF for a few years until he was hired at google.

      I was also deeply honored to see my (tiny, insignificant) minority language on his page for the word Mooleenar in many languages [0].

      As a matter of respect and to honour his memory, I will keep using the last version of vim (by his last commit [1]) as my main text editor for as long as humanly feasible.

      [0] https://www.moolenaar.net/

      [1] https://github.com/vim/vim/commit/4c0089d696b8d1d5dc40568f25ea5738fa5bbffb

    Related

    Tom Ryderblog.sanctum.geek.nz69 people

    Using unix as your IDE

    Tom Ryder
    Personal · last shared 2025
    Nicolas Fränkelblog.frankel.ch54 people

    Teeing, a hidden gem in the Java API

    Nicolas Fränkel
    Personal · last shared 2026
    Nikita Prokopovtonsky.me273 people

    In loving memory of square checkbox

    Nikita Prokopov
    Personal · last shared 2026
    Greg Hurrellwincent.com33 people

    Git: Bram Cohen vs Linus Torvalds

    Greg Hurrell
    Personal · last shared 2022
    Peteris Kruminscatonmat.net316 people

    Low Level Bit Hacks You Absolutely Must Know

    Peteris Krumins
    Personal · last shared 2026
    Peereboompeereboom.us17 people

    OpenSSL is written by monkeys (2009)

    Peereboom
    Personal · last shared 2020
    Protesilaos Stavrouprotesilaos.com64 people

    Emacs Lisp Elements

    Protesilaos Stavrou
    Personal · last shared 2026
    Sacha Chuasachachua.com95 people

    EmacsConf 2024 Notes

    Sacha Chua
    Personal · last shared 2026