Top positive review
19 people found this helpful
Some great chapters, some too basic
on June 23, 2010
The intended audience
In the preface of the book it is stated that the intended audience of the book is intermediate to experienced Vim users and considering the subtitle "Ready-to-use hacks with solutions for common situations encountered by users of the Vim editor" I was lead to believe is a book for those that had been around block and need hands-on examples of production boosters. In my mind I expected it to be a kind of cookbook with small recipes for distinct problems. This is most likely because I have just read the excellent "PHP phrasebook" by Christian Wenz and "Python Phrasebook" by Brad Dayley which both does a great job in this genre of ready-to-use books oriented to more experienced users. The reason I find these books so great are that they acknowledge that the reader is intermediate to experienced and heads straight for the recipes leaving the basics behind. After having read "Having Vim 7.2' I am not as convinced that "Hacking Vim 7.2' succeeded as well in this genre as it dwells too much at the basics in my opinion, but I will return to this later.
A short review of the chapters
The first chapter starts of with a historical insight to Vim and while this can be interesting it seems a bit out of focus for this "ready-to-use hacks with solutions" book. I did not really feel very exited after having read this chapter, but luckily this was followed by the excellent second chapter "Personalizing Vim". This second chapter dives head first into actual Vim hacking with a bunch of well described small hacks to the standard setup including color highlighting, gvim menu hacking and font changing. This chapter definitely fulfilled my expectation to what this a book like this should be, despite the fact that it dealt a little more with the graphical gvim than I am interested in.
The third chapter is called "Better navigation" and while it contained some useful bits, it also went unnecessary details with very basic elements already covered by vimtutor, which I assume that all "intermediate to experienced" users would be familiar with. This is quite vivid in example 1: "Finding the next occurrences of a word" where a full page is used on describing the standard search function. The chapter does however cover most subjects to be expected in a navigation chapter, so for the users who are completely new to Vim navigation it is a good introduction, but it reminds more of a introductory textbook than a "ready-to-use- hacks" book.
Chapter four: "Production boosters" was the chapter I had been looking the most forward to reading after having seen the table of contents. The chapter contains a number of hacks that I found quite useful, such as a excellent walk through example of the usage of omnicompletion: The author goes into details with a real life scenario and uses a function written in vim to accomplish the text editing and I learn alot from reading it. Another example is the coverage of the netrw feature in Vim which enables editing files directly over ssh or ftp. Personally this is how I prefer a book like this to be - inspiring me to try out new hacks own my own.
The fifth chapter goes through formatting of both code and text in various ways and although it had some useful tips there wasn't really something I was very exited about. The sixth chapter about basic vim scripting was really surprisingly basic. The chapter is a very basic introduction to scripting and anyone with a background in any programming language would for instance not find the sections on "for loops" or "while loops" terrible interesting. At this point in the book I again got a bit confused about the intended audience: On one hand this is a great slow introduction to scripting and general programming, but when considering the subtitle of the book I would have expected a more direct approach with examples of useful scripts and tips to hack these.
The final and seventh chapter extends the scripting basics with what I believe was a more appropriate level for the claimed level of the reader. Here good practices and debugging of scripts is described, as wells as short descriptions on how to script in external languages such python, perl and ruby.
In line with the style of the first chapter appendix A does not really cover any ready-to-use hacks, but is instead more a list of what I would call fun-facts. I did not know that you could play Nibbles, Sokoban or Tetris inside Vim, but on the other hand I didn't really care either. The most interesting section in this appendix covered using Vim as an IDE (Integrated Development Environment), but most of the tips were quite shallow as they deferred actual usage instructions to online sources and scripts. The final appendix called "Vim configuration alternatives" is quite good, but should perhaps have been included in the second chapter as it is quite short, but very relevant.
My overall impression is that the layout leaves some room for improvement. Often examples start in the middle of the text and there is no typographical indicators showing that a example is starting. This makes the book hard to use as a reference, since I often look for the examples when I need implement a hack. Furthermore, there is a number of small tips boxes spread out through the book, but they do not have titles and this makes it more tedious to find that special box with the good tip without reading through them all. Finally the book is available both in a ebook and a printed version, but the printed book is in black and white, which makes the color screenshots on page 142 and the syntax highlighted script on page 193 a bit hard to comprehend.
As the reader might have figured by now I am not completely thrilled about this book. I think it at times misses the intended audience and prioritize some less important element of Vim on behalf of more ready-to-use hacks. I would have loved if the pages spent on games within Vim was instead used on covering Vim as an IDE in detail or perhaps skipping the very basic scripting elements in chapter six in favor of a section on the LaTeX-suite for Vim. In summary: I could have imagined this book be more concise, but I do appreciate the good chapters as "4. Production boosters" or "2. Personalizing Vim" - both have undoubtedly made me a better Vim user.