Ramblings of a Professional Computer Geek

January 13, 2009

vi – The editor of choice

This winter, my employer decided to radically change the way we support new customers.    Instead of building their telephony applications using a proprietary, in-house language, we will build them in (raw) VXML, using PHP as the ‘glue’ to put it all together.  (Of course, existing apps, whatever the language, will continue to be supported.)

This means, among other things, that an IDE, or at least an editor, must be decided on to ensure standardization throughout our development branch.  Enter Applications Engineering, my section. I got tasked to decide what toolset we should use for developing our new libraries, and, by extension, the new apps.

First, our environment is a mix of *nix and Windows.  All of our applications run on *nix servers.  (We have a mix of IBM UNIX, HP UNIX, and (mostly) Red Hat Linux.)  The source code is all maintained on a set of Linux (RedHat) servers.  Since they are servers, none have any GUI installed.  Everything is command line-oriented.  The default editor is vi.

Our “Corporate Desktop” is Windows XP.  Since most of our junior programmers were raised in a Windows environment, they have an unhealthy fear of the command line.  A few dozen of them have been using the EditPlus text editor to do their development.  It runs in Windows, has at least rudimentary syntax highlighting, and lets them easily read/write the files on the Linux servers.

Management has suggested we use Eclipse to do our development.   This is because it’s a> popular (meaning they’ve heard of it), and b> free (always a good thing).  So I dutifully spent several days looking at Eclipse for our needs.  My report to management says, “don’t bother”.

Nothing against Eclipse, in general.  If we were doing Java, or C/C++ development, it would have probably been at the top of my list.  But when it comes to PHP/VXML, it’s really nothing more than a glorified text editor.  And, for that purpose, it’s just too bloated and slow.

So I spent the next several days comparing EditPlus, and vi  (actually, vim).

EditPlus has many good points.  It supports PHP.  It has syntax highlighting.  Very importantly, for our command-line-phobic coders, it easily handles remote file editing.  But it does NOT support version control, directly.  (We will be using subversion.)  It also does not have a VXML language plugin. (But nothing does….)  Finally, while relatively inexpensive, it does cost some $$$ to use.

Vim, on the other hand, is totally free.  It already exists (version 6.x) on our development servers.  Upgrading to the latest version (7.2) would only cost a little sysadmin time to download and install.  And there is a GUI version available for Windows, as well.

It has good syntax highlighting.  It supports PHP.  There are plugins available (all for free) that will handle version control (cvs/svn), remote file handling, ‘tags’, etc.  It will do everything that management and developers want.

But, wait! you say.  What about vi’s ‘arcane’, user-unfriendly interface?  Well, to start with, some of us old-timers are used to that interface.  It lets us stay focused on the task at hand, not being interrupted with moving the mouse, clicking on this or that menu, etc.  Everything can be done by keystrokes.  For those that can’t or won’t learn vim, there is a variation called cream.  All the goodness of vi, combined with a Windows-standard gui interface.

So my recommendation to management is going to be vim, with cream as a Windows-based tool for those who can’t figure out how to ssh into a Dev server.



  1. Great choice – vim is my editor of choice too in most cases and with vimtutor it’s not even difficult to learn! And if you ssh onto the servers with the -X option, you could even use gvim, which is nice too! (I don’t know cream, it might be just as good.)


    Comment by Nepomuk — January 13, 2009 @ 4:30 pm | Reply

  2. I use gvim in Windows. I have installed cream to check it out. It doesn’t seem too bad, but I never remember the Windows way of doing things! 😉

    And ssh -X sounds good, but we don’t have X on our servers….

    Comment by Padma — January 13, 2009 @ 5:22 pm | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: