For years, I’ve tried one text editor after another. You name it, I tried it – jEdit, Notepad++, SciTE, PSPad, Komodo Edit… I’m not just name-dropping here. I used each and every one of these editors for over two months as my primary day-to-day editor. I also had a brief stint with UltraEdit, a venerable (but non-free) editor. Somehow, I couldn’t find an editor that just worked right, and was customizable enough to fit my needs.
That all changed a couple of months ago, when I bit the bullet and started using Vim text editor full-time. Here’s 6 reasons why you should consider giving it a go.
Reason 1: Vim Is Old
In software, we often cultivate the mindset that says “newer is better”. We’re always after the latest browser, the latest OS, the latest game. But there’s a lot to be said for ancient pieces of software that are still actively used by lots of people.
Did you know MS Office was first released in 1990? That’s 21 years ago, and look how far it has come. That’s about the time Vim was first released, too (1991). Only Vim is based on a much older editor, Vi, that got its start in 1976.
That alone should make you wonder; what makes such an ancient piece of software so compelling, that thousands of new users discover it year by year?
Reason 2: Vim Is Free & Has A Vibrant Community
Vim is actually defined as “charityware”, and is free to use and open-source. It does ask you to donate for orphans in Uganda, but there are no nags.
If you go to the Vim webpage, you will find lots of recent news items. I counted nine script updates in one day, for example. The site is constantly updated, and Vim’s main developer, Bram Moolenaar, personally posted an update on April 28.
Reason 3: Vim Is Very Customizable & Extensible
Those scripts I just mentioned? They’re the key to much of Vim’s power. There are scripts for just about anything. In the screenshot above you can see FuzzyFinder, one of my all-time favorites. It’s a script that lets you type partial names of files, commands, help entries, etc. and searches for them incrementally, on-the-fly. You don’t have to type from the beginning of the name, and it’s got a lot of options – and that’s just one script!
Other notable scripts include NERD Tree that implements a file-system “tree”, SuperTab Continued for powerful tab-completion, and snipMate for replicating TextMate’s snippet functionality. There are lots, lots more.
Reason 4: Vim Works Over Telnet & SSH Connections
I sometimes need to manually edit webpages that reside on remote servers. I used to use WinSCP to simulate local editing, but it broke every now and then. A few of the editors mentioned above also have built-in FTP clients, but navigating complex folder trees was always cumbersome and time-consuming.
With Vim Text Editor, I can just open an SSH connection to my Web server and run a remote instance of Vim right on the server. Vim is designed to work with slow terminals, so it actually feels fast. As you can see in the screenshot above, colors work just fine over SSH. Being able to work directly on the server has made a huge difference in my Web development work. Not only is it faster, but I can now search through files right on the server, and use Vim to jump between the results quickly and find exactly what I need to modify with pinpoint precision. Simply awesome.
Reason 5: Vim’s Configuration Is Portable
As mentioned above, Vim is very customizable. That means I had to work quite a bit until I got it “just so” on my Windows system. Having to do all that on my remote server would have been a bit of a drag. Luckily, I simply needed to copy a few directories and one all-important “master configuration” file, called .vimrc.
This basically copied my entire configuration from my Windows computer to the remote Linux server. I then just edited my configuration file and modified a couple of things for the server, and I was basically done. Of course I couldn’t keep myself from tweaking things further, but that’s just me.
Reason 6: Vim Is Thoroughly Documented
Note that nowhere on this list does it say “Vim is intuitive”. That’s because it’s not, really. There is a learning curve when you first start using Vim, and it does require a bit of a commitment. But there are quite a few things that can help. Here are just three examples:
- PeepCode’s Smash into Vim screencasts (shown in the screenshot above): These are actually not free; they cost $12 each (there are two), but are a very worthwhile investment. When I decided I wanted to give Vim a serious spin, I bought the first one and watched it. It was enough to get me started with confidence. It wasn’t boring, either.
- Vim’s own *:help* command leads into a treasure trove of carefully-written documentation. Every script has its own documentations; default key bindings are carefully documented, all of the commands are explained, etc.
- Vim also has a wiki with oodles of tips, tricks and helpful code snippets for you to copy and try.
Reason 7: It’s Way Better Than Emacs
OK, so maybe I’m not entirely serious about this last one. As you may have noticed in the introduction, I’ve never actually given Emacs much of a spin (not for two months, at least). According to the scientifically-minded $EDITORs Sucks-Rules-O-Meter, Vim seems to be in the lead in the Editor War, at least for now. But I’m willing to be convinced otherwise. You’re welcome to plead Emacs’ case in the comments.
Speaking of comments: if there are any Vim users in the audience who’d like to share tips or ask questions, I am all ears. I know I’ve barely scratched the surface on Vim in this post, so if you’d like to see more detailed posts about Vim, do share your ideas and wishes.