Learning the vi and Vim Editors by Arnold Robbins, Elbert Hannah, and Linda Lamb


Summary:If you are new to vi or vim, that’s a good starting point

vi is probably everywhere. ex, is probably everywhere. On each and every Linux/UNIX machine (it might be you are still in the middle of installation phase) you will most likely find vi or ex or both.

Anyway, there is a huge chance that you will be either in position where you simply want to learn vi or you will be forced to use it. And then, horror begins. “- How the $%^&* do I quit this editor!? Where is menu? Who have invented that?!”. And that’s the place where it is worthy to buy some sort of vi related book.

Learning the vi and Vim is a really nice introduction to vi as it brings you form the point where you open a file to edit to the topics as complex as scripting in the editor. What I liked while reading were examples of vi behaviour shown is separate tables. Once you have read how to do something you are shown all the steps again. This, of course, is not shown for each and every command, but for more complex tasks.

Deeper you go into the book, the more complex topics start to pop up. These are key mappings, scripting, executing shell commands, etc. And, suddenly, out of nowhere, description of different vi clones pops up. To be honest, I have completely skipped this chapter, well, maybe not completely, I have gone quickly looking at things that might be of interest for me in context of Vim. Well, the point is, I am pretty sure that I will stick to Vim anyway (as it is mostly available clone). So, as for me, this particular chapter could be removed completely and the book would be still worth reading.

And then, part two begins – the Vim itself. Here, after brief history of the tool the party begins. Starting with command line arguments, configuration files, and all that stuff that helps you start the environment in most desired way. If you use Vim already, you are probably familiar with infinite undos and window mode (editing multiple files at once is possible in Vim if you haven’t heard that yet). Anyway, as I am pure shell like person, I definitely enjoyed description of the windows and scripting, while the section related to gvim was completely needless for me. On the other hand, chapter called “Vim Enhancements for Programmers” is highly suggested for anyone working with the source code in Vim (yes, I use Vim for coding, and gdb for debugging – they rock).

As for the part III – “Other vi Clones”, I simply browsed over it quickly as I was still in the mood for the Vim only.

Anyway, apart from the sections related to the clones I think this book is definitely worth reading. I bet you won’t memorise everything at once – there is too many information here. But you will definitely get more familiar with some less common features of Vim. And just one remark. Do your homework as you read. Open terminal, start Vim and type as you read. It will definitely help you to follow the book.

O’Reilly (print): Learning the vi and Vim Editors, 7th Edition
Safari Books Online: Learning the vi and Vim Editors, 7th Edition