Two decades of productivity: Vim's 20th anniversary


Recommended Posts

Two decades of productivity: Vim's 20th anniversary

The Vim text editor was first released to the public on November 2, 1991?exactly 20 years ago today. Although it was originally designed as a vi clone for the Amiga, it was soon ported to other platforms and eventually grew to become the most popular vi-compatible text editor. It is still actively developed and widely used across several operating systems.

In this article, we will take a brief look back at the history of vi and its descendants, leading up to the creation of Vim. We will also explore some of the compelling technical features that continue to make Vim relevant today.

Prehistory

The vi text editor was originally created in the late ?70s by Bill Joy, an early BSD developer who later went on to cofound Sun Microsystems. The original implementation of vi was conceived as an interactive ?visual? mode for an ed-like line editor called ex. It was developed at first on an old ADM-3A terminal, about a decade before computer mice became ubiquitous. Users relied on commands and keyboard-based navigation to interact with the editor.

The limitations and idiosyncrasies of the ADM-3A influenced some of vi?s most distinctive characteristics. For example, vi was programmed to use the h, j, k, and l keys for directional navigation because the ADM-3A keyboard had arrows printed on the keys with those letters. Although it was an accident of history, the hjkl navigation model in vi proved to be enormously efficient. The combination of those letters has become practically iconic among vi users. The navigation scheme is used today in a variety of other applications, including Gmail and the official Twitter client for Mac OS X.

The vi editor became an inseparable part of the UNIX landscape. Joy bundled it with BSD and ATT incorporated it into System V. The core functionality and behavior of vi was later specified in the POSIX standard, which led to the inclusion of the text editor in many of the major UNIX systems.

The vi clones, which began to emerge in the late ?80s and early ?90s, were widely adopted due to more permissive licensing. Joy?s vi implementation was based on the original ATT version of ed, which meant that the code was not freely redistributable. It could only be used by parties that had a UNIX license from ATT.

The first two prominent vi clones were Stevie and Elvis. Stevie, the ST Editor for vi Enthusiasts, was originally developed for the Atari ST in 1987 and ported to UNIX the next year. It was somewhat primitive but attracted a modest following. Elvis, which was first released in 1990, was more sophisticated and was designed to offer more functionality. Elvis was the first vi clone to introduce support for syntax highlighting.

Although Elvis still has some users and remains popular in the Slackware community, it hasn?t seen a major update since 2003. Elvis replaced Joy?s vi in the original 386 port of BSD, but the BSD developers later produced a new clone called nvi that was intended to more closely match the behavior of Joy?s implementation. The nvi editor is still shipped today by the BSD family of operating systems.

History

The earliest version of Vim was developed on the Amiga by Bram Moolenaar in 1988. Moolenaar was dissatisfied with the vi clones that were available for the Amiga platform and set out to make one that came closer to matching vi?s feature set. He based his new editor on Stevie, which he has said was the best Amiga-compatible vi clone at the time.

The first version of Vim that was released to the general public was 1.14, which was published on November 2, 1991. It was distributed on Fish Disk #591, one of the disks in Fred Fish?s Amiga freeware collection. Following its public debut, users began contributing patches.

?A long time ago I got myself an Amiga computer. Since I was used to editing with Vi, I looked around for a program like Vi for the Amiga. I did find a few so-called ?clones?, but none of them was good enough; so I took the best one, and started improving it. At first the main goal was to be able to do all that Vi could do. Gradually I added some additional features, like multi-level undo,? Moolenaar wrote in the first issue of Free Software Magazine, back in 2001. ?When I started working on Vim it was just for my own use. After some time I got the impression it was useful for others, and sent it out into the world. Since then I?m working more and more on making the program work well for a large audience. It?s fun to create something useful. Also, there is a nice group of co-authors and power users, which is very inspiring.?

Source and full article: Ars Technica

emacs > vi(m) if you ask me.

Link to comment
Share on other sites

Am I the only one here that loves vi? I mean I just started working with it last year, but damn it's powerful!

Link to comment
Share on other sites

Nano here.. Vim is archaic D:

You have to sacrifice a virgin at the right time in the lunar cycle and know the magic key strokes to make it do what you want :\

That said, if it works for you it works for you..

Link to comment
Share on other sites

Nano here.. Vim is archaic D:

You have to sacrifice a virgin at the right time in the lunar cycle and know the magic key strokes to make it do what you want :\

That said, if it works for you it works for you..

Vi has a really step learning curve. If you make heavy use of it all that pays off and you'll be able to work quite faster, but for some casual file editing it certainly might not.

Link to comment
Share on other sites

Nano here.. Vim is archaic D:

You have to sacrifice a virgin at the right time in the lunar cycle and know the magic key strokes to make it do what you want :\

That said, if it works for you it works for you..

Ummm .. i really don't understand how to reply to you. I am assuming that you don't type with both your hands, not a fast typer are you?

Well for you VI or Emacs or nano is same

See the reason vi has so ridiculous number of and ridiculous kinds of shortcuts i that they have been designed to enable you to work with both the hands in typing position (I am forgetting what this is actually called , speed typing i supose)

For example to search in gedit / notepad or any editor wht do you do?

ctrl + f .... 2 key which re absurdly positioned, in vim all you need to do is pres /

similrly press 0 to go to the end of line and press $ to go to the start of the line.

you can also serch for regular expressions, scroll across the page edit selected stuffs, edit text on the fly etc. without moving you hands far.

Though i would agree with you that it takes a bit of time to get accustomed to it, but once done its just awesome. i know no one who got a hang of vi and ever used any other editor full time.

Link to comment
Share on other sites

ROFL! ok tell me one thing you can do in any other editor that you cannot do in vim?

I don't care what it can or can't do. This isn't a competition for me. It's just funny you guys are all talking about CLI text editors.

Link to comment
Share on other sites

I don't care what it can or can't do. This isn't a competition for me. It's just funny you guys are all talking about CLI text editors.

It's not oriented for consumers, but in my line of work, we use AIX p series servers. I only learned Vi really well recently, and have learned to love it. I definitely see the whole GUI vs command line argument now. Command line is so much faster if you know your way around it, and is for the true geek.
Link to comment
Share on other sites

I am comfortable with it but if I dont have to use it, I wont. Id rather open up gedit. Cant say Ive used anything other than nano for CLI though.

Vi is not just a CLI editor, it's more of a workflow. You can use vi syntax on the shell (quite common if you work with HP-UX), and also vi editors with a GUI interface (like gvim).

Link to comment
Share on other sites

I don't care what it can or can't do. This isn't a competition for me. It's just funny you guys are all talking about CLI text editors.

The way I see it, it's a bonus that Vim can run in the CLI. Certainly the age of the thing doesn't matter.

Link to comment
Share on other sites

Vim is actually extremely powerful, much more than Nano. I think people say it is archaic because they do not understand how to use it. Read some guides, people. Learn what you preach.

Link to comment
Share on other sites

I am comfortable with it but if I dont have to use it, I wont. Id rather open up gedit. Cant say Ive used anything other than nano for CLI though.

To be perfectly honest, that was my opinion some time back in high school when i had no idea what command line can do. Later in College we were forced to work on command line on a red hat linux box. Initially, I downright hated it but gradually when i found my way around it, it seemed a much better way to work.

we learned to use vim and coded in it. It can work nearly as good as any text editor or ide. it has auto complete, suggestions, project explorer and what not.

But the thing is you can't really say about vim unless you use it. Give it a try and not use any editor for a month. Learn all the shortcuts that you can and you will realize that for any redundant task you have a way around to do it quicker.

also try pentadactyl ( a firefox addon inspired by vim)

  • Like 1
Link to comment
Share on other sites

Knowing vi(m) can be invaluable to anyone who works with *nix systems regularly. That said, it is very much intended for the technically inclined. For everyone else, there's always nano.

Link to comment
Share on other sites

To be perfectly honest, that was my opinion some time back in high school when i had no idea what command line can do. Later in College we were forced to work on command line on a red hat linux box. Initially, I downright hated it but gradually when i found my way around it, it seemed a much better way to work.

we learned to use vim and coded in it. It can work nearly as good as any text editor or ide. it has auto complete, suggestions, project explorer and what not.

But the thing is you can't really say about vim unless you use it. Give it a try and not use any editor for a month. Learn all the shortcuts that you can and you will realize that for any redundant task you have a way around to do it quicker.

also try pentadactyl ( a firefox addon inspired by vim)

Why would I bother? What I use works just fine for me. It just seems some people are so bent on being 1337 and using CLI. Yes, normally its faster but with modern pc specs, really you shouldnt need to drop into CLI. Like I said, Im comfortable. I've used it a lot over the past 8 or so years of linux use. But unless I have to, I dont just pop into it. I use apt-get on a regular basis but thats usually it for my CLI work unless Im compiling something
Link to comment
Share on other sites

It just seems some people are so bent on being 1337 and using CLI. Yes, normally its faster but with modern pc specs, really you shouldnt need to drop into CLI.

It's not about being l337 and the "faster" part has nothing to do with PC specs. It's all about amount of effort to do the same thing.

If you know the right commands, a lot of things are MUCH faster, ie require less effort, to do than clicking around in a GUI. Also, there are many things you aren't able to do in a GUI compared to CLI.

Link to comment
Share on other sites

This topic is now closed to further replies.