[HN Gopher] How Did Vim Become So Popular?
       ___________________________________________________________________
        
       How Did Vim Become So Popular?
        
       Author : nikolalsvk
       Score  : 30 points
       Date   : 2020-06-30 11:46 UTC (11 hours ago)
        
 (HTM) web link (pragmaticpineapple.com)
 (TXT) w3m dump (pragmaticpineapple.com)
        
       | Spooky23 wrote:
       | Back in ye olden tymes, you could count on some variant of it
       | being everywhere. It's lightweight, ubiquitous, and powerful.
       | It's way more powerful than default Windows tools.
       | 
       | There's a steep curve, but if you can handle it and learn a
       | couple of things (%s//g) being one of them, you'll get people
       | hooked. Then the olds shame the young staff to use it.
       | 
       | The muscle memory aspect is significant too. I'm a suit now, but
       | can still work magic with Vi years later. The faculty at my
       | college pushed emacs hard, but customizations are missing on
       | foreign machines, and the key combos were too awkward on normal
       | keyboards (for me) and the skills wore off.
        
       | slim wrote:
       | real answer : because redhat and debian had replaced elvis with
       | vim as the default vi early on. I don't remember the exact drama,
       | but maybe something to do with the license.
        
         | enriquto wrote:
         | elvis was great! The simple monocrhome color schemes were
         | beautiful, and it had a snappiness (even on a 486 back then)
         | that I'm still missing nowadays.
        
       | codezero wrote:
       | I know how I first encountered vi... it was probably 1994 or
       | 1995... (Wiki looks like maybe 1994 was first intel release, so
       | that tracks) - and I had only used Linux up to that point and had
       | never really used an editor other than pico (now nano, which was
       | the editor for the pine email client!).
       | 
       | I thought playing with Solaris would be "cool" so I installed it
       | and couldn't get it on my network because I needed to edit the
       | /etc/resolv.conf to add host resolution, but there was no pico
       | editor!
       | 
       | I ended up digging into manual pages to figure out how to use
       | vim, and over the course of getting the system set up I got
       | pretty comfortable with a lot of the patterns vim let me make
       | faster, they are mostly things I might run in a shell like grep
       | or awk, but I can do it without shelling out, so that was a
       | bonus.
       | 
       | edited: now that I think of it, I bet I was not using vim, just
       | vi - so the relevance to this article might not be quite on.
        
       | kevarh wrote:
       | Vi (and ed) are the only text editors required to be included in
       | the POSIX spec. A base Unix (and most Linux) installs will have
       | some version of vi or vim installed by default.
       | 
       | If I'm working on someone else's box this pretty much guarantees
       | I can edit files with my basic vi knowledge without having to
       | install a different editor.
        
       | bsdz wrote:
       | Something I've come to rediscover is how good vi/vim is on a slow
       | network connection. Our sharp networking team route me from
       | London to Sydney so I can remote back to my London PC.
       | 
       | Seeing what you type several seconds after you typed it is
       | reminiscent of the 90s and dial up connections.
       | 
       | Having familiar vi keybindings in so many applications these days
       | has been a productivity saver.
        
         | microtherion wrote:
         | One editor which used to be great at this is sam, which was
         | explicitly designed to work across slow links, by being split
         | into a frontend running locally, and a backend being run on the
         | target host: http://sam.cat-v.org
        
       | tenebrisalietum wrote:
       | Disappointed the article went straight from punch cards to video
       | terminals without mentioning teletypes.
       | 
       | > Having that thing show up on computers in those days was pretty
       | tricky, and some considered it a resource hog.
       | 
       | Well in the 60's and 70's, you didn't necessarily even have a
       | display, you might be using a physical teletype. `ed` is built
       | for that.
       | 
       | Even when you had a display, it could be slow. The VT05 from
       | 1970, only went up to 2400 baud. And if you were using a modem
       | back then I think you were definitely most likely connected at
       | 300 baud or below.
        
         | reaperducer wrote:
         | Or the display might be a single line of 16-segment LEDs for
         | interacting with the machine, and "output" was on paper.
         | Another reason to keep the visuals to a minimum.
        
       | amelius wrote:
       | > What I am trying to say that vim is an effort of over half a
       | century of good idea accumulation, putting lots of effort into
       | being backward compatible.
       | 
       | I wonder what Vi(m) would be like if it were redesigned from
       | scratch.
        
         | haberman wrote:
         | I hear good things about https://kakoune.org/. But I have 20
         | years of muscle memory for vi keybindings, and they're well-
         | established enough that you can even use them in other editors
         | like VSCode. So I'm wary of training my fingers to do something
         | else that only works in one editor.
        
         | StephenAmar wrote:
         | Isn't that what neovim is trying to do?
        
           | BlackFingolfin wrote:
           | AFAIK it still tries to stay mostly compatible with regards
           | to how it is controlled, doesn't it? So while the internals
           | are perhaps new, the frontend is not.
           | 
           | But I think Kakoune https://kakoune.org would fit the bill
        
             | chongli wrote:
             | Kakoune is definitely an attempt at redoing the vim concept
             | from scratch. I spent a few weeks trying it out and
             | attempting to get used to it. Ultimately, I came away from
             | it feeling disappointed.
             | 
             | I think the basic premise of multiple cursors editing as a
             | preferred model (which is what Kakoune does) is flawed.
             | Why? Because large-scale scale changes are the exception,
             | not the rule. By emphasizing multiple cursors, Kakoune
             | actively makes it harder to do the normal thing people do
             | in a text editor: jump around a file and make specific
             | edits to individual lines. Instead, a bunch of normal
             | movement commands (such as forward and backward search)
             | leave extra cursors in your wake, forcing you to press an
             | extra key to dismiss them otherwise you'll get erroneous
             | edits that might not even be visible from where you are in
             | the buffer. This is not a good thing.
             | 
             | The other basic premise that Kakoune addresses (that vim
             | commands lack visual feedback) is not even an issue for
             | experienced vim users who type commands quickly from muscle
             | memory. The edits happen when the command finishes and you
             | don't get distracted by intermediate results. For global
             | substitution, you can always append the `c` flag to add a
             | confirmation prompt to each substitution. That alone
             | obviates much of the motivation for Kakoune's model.
        
         | smabie wrote:
         | Probably something like spacemacs.
        
           | smitty1e wrote:
           | Emacs + vim really are the peanut butter and chocolate of
           | getting stuff done.
        
             | smabie wrote:
             | I really want to give spacemacs a try, but unfortunately
             | I've just been using traditional emacs for far too long. vi
             | does seem to have a much better editing model than emacs.
             | The tools Emacs has for buffer navigation and editing have
             | always struct me as incredibly primitive.
        
           | qroshan wrote:
           | If you like emacs, switch to doom emacs. spacemacs
           | development is almost dead
        
         | boogies wrote:
         | I've been loving vis1, a hybrid between traditional vi and
         | sam2, a text editor Rob Pike designed from close to scratch.
         | 
         | (Edit) I learned vim a little bit over a year ago, switched to
         | neovim soon after, tried kakuone for a few days and didn't like
         | losing so much muscle memory because of the verb-noun order
         | reversal, switched to vis a few months ago and don't plan to
         | switch back.
         | 
         | 1: https://github.com/martanne/vis 2:
         | https://en.wikipedia.org/wiki/Sam_(text_editor),
         | http://sam.cat-v.org/
        
         | yjftsjthsd-h wrote:
         | vis comes to mind (https://github.com/martanne/vis), although
         | perhaps something even more aggressively plugin-first would be
         | even better
        
       | okasaki wrote:
       | Probably because it was the default editor in a bunch of Linux
       | distributions.
        
         | luxurytent wrote:
         | Isn't Pico the usual default?
        
           | tingletech wrote:
           | on more consumer grade distros I've had to `export EDITOR=vi`
           | before to get vi to come up for things like `crontab -e` and
           | for `git` messages. But it is the default on most systems
           | I've come across personally.
        
           | wadkar wrote:
           | I have seen nano to be the default for most debian and fedora
           | derived distributions from early 2000s. Not sure if things
           | changed in late teens. Or maybe I am misremembering things.
        
         | asveikau wrote:
         | And that because vi was present and popular on commercial Unix.
        
       | duckfruit wrote:
       | Speaking personally, I've been a professional developer for
       | almost decade and even in my relatively short career I've seen a
       | lot of technologies come and go. I was reluctantly roped into it
       | by my first boss, an enthusiastic Vim advocate. And since, almost
       | nothing else (save for maybe git) beat learning vim from a return
       | on investment perspective. From the default mac OS installation
       | to some old Fedora box that has not been patched since the early
       | 2000s, Vim (or its simpler brother Vi) has always been there!
       | 
       | And once I got used to it, I couldn't really imagine using
       | computers any other way. I'd go so far as to say that the 'home
       | row' concept of vim is the ergonomic ideal of keyboard based
       | computing, and I now try to mimic that behavior everywhere -- the
       | vimium extension in chrome, various vim plugins for vs code and
       | sublime etc. If you're on the fence, I'd urge you to give in!
        
       | pphysch wrote:
       | It was there, and it was (and still is) good enough.
        
       | vowelless wrote:
       | Vim (bindings/modality - ESC mapped to CAPS) are good for my
       | hands. I don't get tired. Before vim my hands would get tired
       | after some time. Now it feels like I can keep going forever.
       | 
       | Now I use vim for everything and it's bindings in my browser,
       | email client, todo list app, etc.
        
       | aarong11 wrote:
       | Because nobody knows how to quit
        
         | TenJack wrote:
         | Ah early web development nostalgia.
        
       | tingletech wrote:
       | in TRS-80 BASIC, you could go `EDIT 100` and bring up a line 100
       | in a line editor, vi sort of reminded me of that when I was
       | learning it something like 25 years ago. It is still my main code
       | editor.
        
       | mtippett wrote:
       | We also need to understand that a subset of vi features is part
       | of the POSIX standard, so any POSIX system will need to have
       | "vi". vim is the logical choice there.
       | 
       | So as a result vim has become the reference implementation for
       | the POSIX vi featureset.
        
         | catalogia wrote:
         | All of vi is specified by POSIX, but vi is only a subset of
         | vim.
        
       | ur-whale wrote:
       | To me at least, the answer is and always has been: speed.
        
       | halotrope wrote:
       | For me it is being able to efficiently navigate a file without
       | leaving the home row (Gotta learn touch typing first). Once you
       | understand the commands follow a composable grammar it is really
       | like a superpower for dancing around text.
       | 
       | ,,Go down 5 lines, move right two word, replace the contents of
       | the brackets". I don't use the actual editor all that often but
       | have vim mode enabled in all my ,,real" editors like VSCode or
       | JetBrains Suite. I am often wondering how people do edit source
       | efficiently without vim mode but I am too shy to ask.
        
         | boogies wrote:
         | Some people use trackballs or pads with their thumbs, or
         | trackpoints.
        
         | gt2 wrote:
         | Long time vim lover here as well, but I guess I hear often that
         | for a lot of folks, input isn't the bottleneck.
        
           | johannes1234321 wrote:
           | I don't see it as a bottleneck, but focus. Not searching for
           | the mouse or something or stretching fingers to Edit with
           | Meta Alt Control and Shift etc. but fingers where they feel
           | comfortable efficiently browsing the files.
        
           | halotrope wrote:
           | Yes I hear that as well. IMHO most of the time is thinking
           | but when I want to move stuff from my brain to my screen I
           | prefer maximum bandwidth and not having to consciously think
           | about it. To each their own I guess.
        
       ___________________________________________________________________
       (page generated 2020-06-30 23:00 UTC)