Pro Vim teaches you the real-world workflows, tips, and tricks of this powerful, terminal-based text editor. This book covers all the essentials, as well as lesser-known but equally powerful features that will ensure you become a top-level performant and professional user, able to jump between multiple sessions while manipulating and controlling with ease many different documents and programming files. With easy-to-digest chapters on all the areas you need to learn, this book is a key addition to your library that will enable you to become a fast, efficient user of Vim. Using this book, you will learn how to properly configure your terminal environment and work without even touching the mouse. You will become an expert in how Vim actually how buffers and sessions work, automation through Macros and shell scripting, real-world workflows, and how to work efficiently and fast with plugins and different themes. You will also learn practical, real-world tips on how to best utilize Vim alongside the terminal multiplexer tmux; helping you to manage files across multiple servers and terminal sessions. Avoid common pitfalls and work with best practice ways to efficiently edit and control your files and sessions from the terminal interface. Vim is an advanced power tool that is commonly recognized as being difficult to learn, even for experienced developers. This book shows you how to become an expert by focusing on not only the fundamentals of how Vim works, but also by distilling the author's own experiences learning Vim into an easy-to-understand and follow guide. It's time to bring your programming, editing, and workflow skills up to the professional level - use Pro Vim today. • Understand the fundamentals of how Vim works so you can better utilize its features. • Extend Vim using plugins; along with specific plugins that cover a wide range of technical requirements. • Automate Vim and tmux via the use of Macros and Scripting. • Learn how to make complex pattern based changes across multiple Vim buffers at once. • Pair program with remote users connecting to a single local tmux session. • Learn real-world workflows that integrate both Vim and tmux together. Pro Vim is for any developer who wishes (or has tried in the past and failed) to understand how to leverage the tools provided by Vim and tmux and integrate them into their professional working environment. Allowing them to take advantage of the power features these applications provide to become a better programmer.
First, the disclaimers: I'm a VIM user since early 2000; I wrote a "Using VIM" book-of-sorts (in Portuguese); this book is, at the time of this review, 5 years old.
The book intro said it was called "Pro" 'cause there was no middle ground for VIM: when you start learning VIM, you have to go all the way to pro.
So, is it a book aimed for beginners? Maybe. VIM has a very steep learning curve, but things can be smoothed out by explaining things in steps; because VIM uses composable commands, you can explain movement -- say, "w" moves the cursor to "next Word", "e" moves the cursor to the end of the word and so on -- and then explain that you can modify the text using a verb and a movement -- "d" is delete and "dw" means "delete word". But the book decides to jump around and, while explaining movement, jumps into the modification verbs without explaining verbs before: There you are, leisurely reading about moving the cursor around and suddenly a "c2w" appears, with no explanation of what the "c" or "2" does. It works, but I have the feeling that it more confusing to dump things straight away than explaining step by step and how things connect.
Is it a book aimed for people who already know VIM? Maybe not. Surely there are a few things one can still learn about VIM years after using it, but after 20 years, I guess I read everything VIM can do at this point. But, again, maybe you don't have 20 years of VIM and there are things you still don't know.
Does it show ways to make you more productive in VIM? I'm not sure. I mean, the whole book is based on the author's workflow -- a workflow that is only slightly exposed -- and if you don't have the same workflow... Maybe it won't fit at all on yours, 'cause it focus on the workflow and not on how certain movements/commands can improve yours.
Is this book up-to-date? In the VIM commands part, yes. In the plug-ins... not so much. VIM got a bunch of new releases recently (say, last year) and, thus, a lot has changed in the plug-in area. Surely Fugitive (which the author decided it should be called "fugative", for some reason) is still the most feature-complete Git plugin, but everything else was already replaced (and yes, that book-of-sorts I wrote also suffers from this problem).
Why Tmux is there? Well, VIM mixes well with Tmux, but I have to ask why it is there. Why there isn't a section for rxvt, for example? Or Gnome-Terminal? Doesn't VIM mixes well with those too? (My guess is, again, that the book focus a lot on the author's workflow and not how things in the workflow improved things, so because the author feels Tmux improved his workflow, we must talk about Tmux). There is also the problem that the author recommends using his configuration, so a lot of keybinds are not the default ones, and one starting from scratch may not understand why things aren't working.
Again, the book didn't age well. Plugins are out of date, there should be a serious editorial work on it -- one chapter has paragraphs with garbled content, which is completely unintelligible -- there is no "Style Conventions" for things, so keystrokes will appear in one style in one chapter and in a different style in the next. And some things are shown in one chapter and only explained in the next, which makes me think the order was changed after the chapters were written.
In general, it may be OK if you are starting with VIM, but that's that.
As a long-time Vim user (10+ years?), I've personally learned better from videos (Damian Conway and others), plugin READMEs, VimGolf, Vimawesome, and of course Drew Neil's book Practical Vim, but it was nice to go through another organized book on some of the material. An experienced Vim user can slice and dice through text at a rate 10x faster than the time it takes to go through all the prose in this book :-) The goal should be to burn the Vim-isms into one's fingers rather than remembering during our day-to-day what a 'text object' theoretically is.