Understanding Vim
4.9 (97.14%) 14 vote[s]

There are plenty of text editors available to developers today, making it almost impossible to pick a favorite.

Especially, when each developer has their own preference based on the type of work they do and ease of use. For instance, you may find some front-end web developers going for Sublime Text, desktop developers choosing Notepad++ and DevOps, and Sysadmin developers preferring to use Vim.

But this doesn’t mean that these are every programmer’s favorite. In fact, it’s not easy finding data for the most popular open source text editor. So I’m going to walk you through one of the longest-running text editors in the market and how it remains a long-standing favorite for many developers.

Vim – A (Brief) History

Officially released to the public on 2nd November, 1991, Vim (or Vi Improved) is a free open source text editor that allows users to create and configure any kind of text. The software was created by Bram Moolenaar as an advanced adaptation of Vi – the text editor by Bill Joy, originally released for Unix.

Bram had learnt to use Vi in University and loved it. But when he bought his first computer, an Amiga 2000, he couldn’t find a good Vi that was compatible. So he settled for Stevie – a Vi-like text editor originally created for the Atari ST computer.

But there was a problem.

While Stevie was as good on the fingers as the Vi, it lacked in functionality. The software missed most of the commands, crashed every now and then, and wasn’t working so great. Bram believed it could use a few additional features. So he decided to take advantage of the fact that it was open source and embark on changing it.

That’s how the first version of Vim came to be. Bram had taken the Vi-like editor, Stevie, and added various features such as recording to a register, multi-level undo and redo, help file, quickfix mode, and lots of Vi commands to create a Vi imitation.

And after releasing it to the world as Vi Imitation, other developers joined in to transform it into an improved version of Vi, instead of just an imitation. This led to a renaming of the software into what it’s known as today – Vi Improved.

Becoming Charityware

During the summer of July, 1993, the second year after Vim was released into the world, Bram made his first visit to Uganda. He volunteered at a children’s centre in one of the poorest regions in the country and fell in love. So much so that he went back in December of the same year and temporarily moved to the country in August, 1994. He stayed here for one year.

It’s during this time that he made Vim a charityware.

Charityware is software that’s created with additional features to support charity work. Also referred to as Helpware, Goodware or Careware, it’s meant to contribute to change in the society by championing humanitarian causes.

And it’s usually designed to work in any of these three ways;

  1.       A percentage of the proceeds, or all proceeds, get donated to a charity of choice.
  2.       The software is licensed to or donated to a specific charity.
  3.       In cases of free open source software, like Vim, users donate an amount of their choice to the specified charity

This is what Vim became.

With Bram driven by the need to help out the needy kids he met in Kibaale region of Uganda, he added a donation feature that launched with every install. To date, every Vim user is requested to donate an equivalent of what they think the software is worth.

Does this model work? Based on a 2017 financial report by ICCF – the foundation receiving donations from Vim users – yes, it works. The report shows there’s an increase in revenue with every year. A clear indication of the love users have for the software and probable increase of developers using the code editor.

Maintaining relevance 27 years later

With every text editor available to developers, it’s the features it holds that make it most appealing. And Vim hasn’t let almost three decades of existence take away its best. Aside from being free and open source, which allows for constant improvements, over the years programmers have enjoyed these features.

  •         It can be fully customized
  •         Extensive documentation and How-to guides are readily available – a favorite for beginners
  •         There are hundreds of color schemes available for syntax highlighting
  •         Unlimited undo and redo
  •         Available for use on multiple operating systems – it’s everywhere, literally
  •         Designed for use as a standalone application in a GUI and a command line interface
  •         Extensive plugin system
  •         No need to take your hands off the keyboard
  •         Supports over 200 languages, and the ability to create your own
  •         Has its own programming language, Vimscript
  •         Huge online community for when you’re stuck
  •         There’s always a new feature to discover as it keeps improving

And just to paint a picture on one of the features above, Vim text editor can be used on Unix, Linux, Ubuntu, Windows (7, 8, 10), Android, iOS, MacOS, Amiga DOS, Atari MiNt, BeOS, etc. So, clearly, compatibility is a non-issue for anyone using Vim.

The Latest Version, Vim 8.1

Officially released in May, 2018, Vim 8.1 is the latest version of this open source software. It’s a minor update from its predecessor Vim 8.0, but a huge improvement from the earlier version 7.4. I choose to mention this version because it’s the best choice to compare what’s new. Why? Because there’s a gap of 10 years between the two.

But first, let’s talk about the minor update.

With every software release, there’s always a bug. A flaw in the program that limits it from performing in the way it’s supposed to. Version 8.1 fixed all the bugs that were present in Vim 8.0, updated its documentation and added a feature allowing users to run a terminal in a Vim window.

This feature helps to do the following;

  • Run a command while editing in other windows
  • Run a shell to execute a series of commands
  • Debug inside Vim using a new terminal debugger plugin
  • Grab a screenshot during tests and compare it with expected state

To understand the extent of what’s new in Vim’s latest version, let’s take a look at additional features included in Vim 8.0. This, as I mentioned earlier, forms the best basis for the latest updates to the software.

Here are some of the new features:

  • Added support for JSON (JavaScript Object Notation)
  • More plugins and package support
  • Use of unique IDs to access open Vim windows
  • Support for GTK+3 GUI
  • Added timestamps to keep track of recent logs
  • Asynchronous I/0 support – ability to communicate with background processes
  • Breakindent option – helps to keep the amount of indent when wrapping lines
  • Support for timers, jobs, new style testing, closures, partials, etc.

Current Status

Vim turned 27 years in November of 2018. Over the years, the open source software has remained a favorite for many developers – beginners and experts alike. A recent indication of this is 1st December, 2018 when Vim held a conference in Tokyo, Japan. With the creator Bram Moolenaar headlining the event as a keynote speaker, the conference was completely sold out.

There isn’t any news of an upcoming release. But with an active online community of developers using the software, you can get help for almost any issue with Vim. In fact, at the time of writing this post, there was a Vim-related discussion on GitHub time stamped “3 hours ago”. Goes to show how large and present the community is.

In Conclusion

If you’re on the lookout for a new and fresh text editor, Vim isn’t what you need. This free open source software is an old choice when it comes to the history books. But that doesn’t mean it falls short in meeting your coding needs.

On the contrary, despite being in existence for almost 30 years, Vim remains a functional and efficient choice among most developer circles. You’ll hardly miss it in a listicle for top text editors in the market, or in a discussion among developers on GitHub. This is regardless of its charityware status – a feature that would usually lead to questions in terms of quality.

And while Vim is a great choice that has even won an award for best text editor by Linux Journal, it’s not the easiest to use. Or at least, not for developers who are just starting out. But it’s nothing to be scared about.

According to a Vim review published on freeCodeCamp on Medium, the difficulty is only a wall that blocks you from all the goodness the software holds. Once you’ve gotten through it, by learning how to use an editor on command line, the ubiquitous side of Vim will begin to show. And this is where you start to shine.

So if you’re yet to try out the software, allow me to summarize what you’re missing out in this long sentence: Vim is free to use, has an active online community, is extensively customizable, designed to work with slow connections hence fast, has a lot of documentation available, and can run on most operating systems. And did I mention it has support for over 200 languages with an option to create your own? Now you know.

text

Understanding Vim

Written by Alex Jasin

Last Updated: June 8, 2019