Published Last updated loading views
Photo by Alvaro Reyes on Unsplash
You probably heard of Vim, the almighty text-editor that is everywhere anda place where people get trapped from time to time.If you are hearing from your local DevOps engineer how Vim is excellent andfast, you probably thought about giving it a try. But how did it cometo this? How did Vim-craze take over the world at some point?
If we look at theStackOverflow survey for 2019about the most popular development environments, Vim is still there on the 5thplace, with around 25% of Web Developers using it. Fifth place is pretty neatconsidering the first Vim release happened almost 30 years ago (yeah, you readthat right, Vim got first released in 1991).
To better understand why and how Vim got (and is) so popular, it is best tolook into the roots of how it all started. Before vim
, there was vi
, beforevi
there was ed
. What are all these two or three letter words, andwhat is the story behind it? Let us dive in and figure out.
Punch cards and line editors
It might be apparent today why we have text editors and fully-fledged IDE(Integrated Development Environment), but what did we have before that?As you may know, early forms of programming involved putting papers withholes (punch cards) inside acomputer. The order in which you placed these in was very essential. For example, thisis a picture of 4.5 megabytes data, stacked in 62500 punch cards. Imaginedropping that and having to sort it again.
OK, mom, I'll come down, just need to re-stack my new blog post
Punch cards proved a bit inefficient as computer power and storage grew, andprogramming evolved. Eventually, people moved away from punch cards, and thenthere came the era of “line editors.” One great example of this is aned
editor. Let’s not forget tomention QED editor,ed
’s predecessor.
Using a line editor
If you are on Linux or Mac OS, open your terminal and type ed
. Youwill get a simple line editor, which will greet you with silence.If you are amazed by this finding (as I was), you can try playing with it for a while. To writea file, start typing a
and press enter, then write your text. Typing .
following an enter will exit the append (insert) mode. Then, to write a file, you cantype w myfile.txt
and press enter and lastly write q
and enter to exit.
# ed a Hey there! I am using ed right now, how cool. OK, that's enough. . wmyfile.txt 64 q
As you may notice, there are similarities between working with ed
and withtoday’s vim
. If you use Vim, you can say you would get the hang of ed
prettyquickly.
Vim’s dad - The Vi
After ed
, then came the em
- the “editor for mortals”.It could do similar things as ed
, but it is ‘less cryptic’ and built forregular people. Based on em
’s code, Bill Joy developed ex
, whichstands for “extended ed”! It was significant because ex
had, besides the previousmodes, the visual
mode, which will show the whole file on your screen. Youmust be thinking - duh, how didn’t they think of that earlier?Having that thing show up on computers in those days was pretty tricky,and some considered it a resource hog. But, at that point, the benefits hadoutweighed objections, and having a file opened on your screen as you edit itbecame today’s standard.
And like that, the visual mode was born. Later, the executable vi
gotintroduced in operating systems, but you can still access ex
commands bytyping :
in vi
/vim
. The ex
got released in 1976, and the vi
executable got released in 1979. 40-something years ago! But, how did vim
came to life?
The Imitation Game
A couple of years later, many vi
clones emerged (my favorite one isElvis). One of them was “ViImproved” which was created by Bram Moolenaar - the name you now see when youtry to open vim
in your terminal. In the large pool of different vi
clones,vim
managed to stand out. Bram used a clone of vi
called STEVIE
(nicename, BTW), and noticed that it lacks many of vi
’s commands. He addedsome new features and made it compatible with vi
and released it underthe name “Vi Imitation” (this later changed to “Vi Improved”). The name vim
came in version 2.0 in 1993 andstayed like that until the present day. But how did vim
achieve fame? It had abunch of excellent featuresat that time, and it was compatible with vi
. Features and compatibility attracted a lot of folks to use it.
Half a century of contributions
If you take a look at the essential commands to move around in Vim: h
, j
,k
, and l
, these all pull roots from the old vi
days. Bill Joy’skeyboard at that timedidn’t have cursors to move around. Also, the ESC
key was in the placeof today’s TAB
key. Take a look at how it was back in the day:
Commands to replace text like :%s/text_to_replace/text_to_replace_it_with/
isalso something from that era. Having to type :
to perform a commandwas an answer to ed
’s complete silence when you first enter the editor.
What I am trying to say that vim
is an effort of over half a century ofgood idea accumulation, putting lots of effort into being backward compatible.Yes, useful features probably made Vim famous. But what kept Vim in the loop isthe compatibility with almost everything you can think about. Wherever you SSHtoday, you can start the Vim session, or at least Vi session. That is a strong(if not the strongest) point to learn it nowadays.
If you’re not someone who jumps from server to server and navigates files onthere, the point of having Vim everywhere doesn’t bother you. Butstill, there are a couple of reasons why it might be valuable to you. I am forminga new blog post explaining why you should learn Vim in 2020. If you are interestedin this, consider subscribing to the newsletter.
Final thoughts
Thanks for reading this far, I appreciate it. I hope this blog post shed somelight on how Vim became what it is today. I also hope the post inspired you totry it out. You never know when you might need it, or you like it so much thatyou decide to switch to using Vim fully.
Maybe you get a Vim mode inside your IDE or VSCode, who knows. I am not sayingthat Vim should replace what you are using now, but trying to learn andconfigure it will improve your skills and abilities. On the other hand, it doesn’t reallymatter what editor you use, it is what you do with it!
At the end of the day, it’s the matter of finding the proper editor(tool) that makes you do what you do even better.
If you liked the blog post, you can share it with your friends and coworkers below:
I just published a new blog post on the history of Vim and why it became popular. Also, there's an origin story on why you can use h, j, k, and l to move around in Vim. Check it out ⏬https://t.co/S3p50cgYPW
— Nikola Đuza (@nikolalsvk) June 30, 2020
Thanks for reading, catch you in the next one, cheers 🍻
💡 Are you eager to learn Vim or get to the next level with it? Then check outthe Mastering Vim Quickly book.
There is a translation in Japanese andChinese.You can also read the discussion on HackerNews.
Tagged as: Vim
Join the newsletter!
Subscribe to get latest content by email and to become a fellow pineapple 🍍