Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Learning the vi and Vim Editors Book Review

September 09, 2008

vi was the first text editing program I learned to use on the Unix platform and that initial exposure has kept me an ardent user of the application and its more powerful descendant, Vim, for years.  I read this book searching for insights I had yet to discover on my own as well as evaluate the book's success in conveying the power of these applications to the uninitiated.  Read on to discover if the book met my expectations.

 Having used vi and more recently Vim for years, I was skeptical though hopeful the authors could elevate my knowledge and effectiveness with these editors.  Once the basic keyboard commands are memorized and committed to kinesthetic memory, is there really much more to learn?  Apparently so, as this book's over 450 pages attest.

The book begins where all introductory texts do, with a very brief history of the application followed by exercising the most basic functions of the program.  These tutorials are well written, though I still advocate Vim's online training to new users unless that audience is adverse to reading tutorials from a terminal.  The book progresses from simple editing to moving around files using a combination of movement instructions, then on to more advanced features including buffers, global replacements and executing Unix commands within vi.

Part II is devoted entirely to Vim, beginning with the what, why and where to get it.  A brief chapter on Vim improvements over vi leads into Vim's more powerful features such as using multiple vertical and horizontal windows, enlisting and writing Vim scripts and the graphical advantages and enhanced capabilities of gVim.  Part II concludes with two of my favorite chapters in the book on Vim enhancements for programmers and other cool stuff in Vim.  While I did indeed learn a couple of nifty tricks, the book failed to deliver on a key expectation I had - offering a series of optimal configurations for using Vim in different scenarios.  For example, if I were developing a Django application in Vim, it would have been invaluable for the authors to present a .vimrc file printout of their recommended Vim setup.  This would have been accompanied by a discussion of why certain Vim scripts, add-ons and start-up parameters were employed.  A chapter could have been devoted to this idea, ranging from Vim configurations optimized for Ruby on Rails to Dojo to EJB to Mono C# development, each bundled with all the advanced auto-complete, function look-up, code folding, compiler hot-key configured settings that are springing up all over the web in various blogs and screencasts.  Overlooking this ever-growing area of discussion was unfortunate.

Part III rounds out the book by introducing other vi clones such as nvi, Elvis and vile, though I would advocate that this part of the book could have been condensed into an Appendix.  In fact, the books for appendixes collectively match the page count of the third part of the book, so I would have preferred more space dedicated to the Vim configuration idea than on vi alternatives I will probably never use.

In summary, Learning the vi and Vim Editors is a solid book for newbies who are enthusiastic about quickly maneuvering around file contents using a very lightweight and powerful editor.  It is for nascent programmers like my kids who are comfortable with gedit or notepad.exe but are beginning to seek alternatives to alleviate the frustration of the simplistic editing these default text editors provide.  However, O'Reilly's vi Editor Pocket Reference coupled with Vim's online tutorial satisfies a majority of that requirement.  This, combined with the lack of any considerably deep revelations or optimal environment recommendations lowered my opinion of the book.

Regardless of these criticisms, the book continues to fulfill an apparent market need since this release represents its 7th Edition advertising 7 new chapters on Vim.  Unfortunately, those 7 chapters fell short of my expectations, prompting me to direct interested friends and colleagues elsewhere for their vi tutorial needs.

Title:  Learning the vi and Vim Editors
Author: Arnold Robbins, Elbert Hannah & Linda Lamb
Price: US $34.99

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.