Learning the vi and Vim Editors, Seventh EditionIf you deal with Unix on a regular basis then knowing the basics about how to move around in Vi can be an invaluable skill to have. This editor is bundled with nearly every Unix variant know to man including prehistoric versions of HP-UX and Solaris (SunOS) as well as other more obscure creatures. A good understanding of Vi can save you a lot of pain if ever you find yourself having to deal with editing config files on legacy systems. Apart from all that Vim, properly configured and coupled with cscope, is an incredibly powerful and light weight editor, which once mastered allows a competent developer to hack away at a blistering speed.

If you come from a windows background or are used to dealing with rich IDE's then Vi/Vim, with its seemingly archaic keyboard combinations, can be a bit of a shock to the system. This book does an excellent job of putting the editor in perspective, explaining why it works the way it does and how with a bit of discipline and patience it make you edit files faster. The first 8 chapters go through the basics of moving around with Vi and provide a number of useful examples on how to do all the basic things you will want to do (moving around, deleting, search and replace, using buffers, regex). The next 8 chapters go into using Vim and discuss various issues like setting up color schemes, configuring it, indentation and a whole bunch of other goodies, again they do a good job of covering all of the things you would want to know if you never used Vim before. The last 3 chapters cover other Vi derivatives such as Nvi, Elvis and Vile; these chapters give more of an overview of each of these editors than a comprehensive review of what they can do.

There are a couple of things I did not like about this book. First of all I felt that, for me, someone with a working knowledge of Vi/Vim it was generally a little bit wordy and a good half inch thicker than it needed to be. Secondly, I often find myself needing a little guidance on how to do certain things in Vim, on a number of occasions I attempted to flick through the index/appendix at the back of the book in search of an appropriate example. Googling almost always yielded a better example, so the use of this book as a day to day reference is a little questionable. Thirdly, the absence of any lengthy discussion of cscope is to my mind a disservice to any developers reading this book.

In summary I think this is a fantastic book for anyone new to Vi/Vim but not so much for the more experienced Vi/Vim user who will get a few useful tidbits out of it but little more. The previous edition is currently priced at around $26 on Amazon and I believe it only covers Vi; the price on the back of my review copy of the 7th edition is $34. I think for a newbie anything under $40 is a fair price to pay.