Chapter 2.Table of ContentsCheatsheet

Foreword

It was early spring of 2013 and it was cold. Colder than what you would expect for such a time of the year. Colder that Spring has a right to be. But this was Sweden. And such things are to be expected of Sweden. No milder weather could have forged the mighty Vikings.

I was a young .NET web developer working at a product company in a small, lethargic city in the south of Sweden. A Spaniard, foreign in a foreign land with weird customs and weirder peoples. I had been working as a software engineer for about 4 years then and I really, really loved every, single, second of it. As someone who loves his work, I prided myself in it, and I strove to become better and better every day.

I remember that at the time I was very proficient with C#, Visual Studio and the all-powerful ReSharper (blessed among Visual Studio plugins). Using ReSharper I had achieved a high level of productivity by learning all its key bindings, its most mysterious features, and having an extremely keyboard-centric workflow.

Minimizing the role of the mouse, and using ReSharper’s amazing capabilities meant that I could type away, jumping from file to file, refactoring code, extracting, renaming, replacing and writing at amazing speeds. Whatever crazy idea came to my mind, I could materialize it in code within seconds.tdd

But there was something wrong. Something missing. Too much Friction. My amazing speed and productivity would stop as soon as I would dive into the body of an existing function or class. Whenever I had to edit something at a finer level of detail, insert some new statements above the current line, or change some text to something else (which happens to happen more often than one would think) things would slow to a crawl (or so I perceived it).

And so as fixatedfixated as I was on improving my craft in every finest detail, I left on a journey of discovery, a quest for the ultimate text editing experience. Something that would allow me to become super awesome in all aspects of the mechanics of coding, the high-level macro ones which I felt I had mastered, and the teeny tiny micro ones which I needed to improve.

I travelled the lands and spoke to the sages. I explored, and wandered and wondered, and after much wandering and much toiling, I found Vimvsvim. And Vim was awesome (as it was tough), and it changed the way I wrote code from then on. Up until this very day, as I write these words (in Vim).

This book’s sole purpose is to share a sliver of that same awesomeness with you. I hope it changes and empowers you as it changed and empowered me.

Enjoy!
— Jaime.
On March 2019
Stockholm. Sweden.


  1. I also was very fond of TDD, and the flow of writing tests, then code via ReSharper code generation tools was just magnificent.
  2. Fixated in a good way. A chill, cool, easygoing kind of fixation.
  3. I found Vim in its VsVim incarnation. An amazing Visual Studio plugin that brought Vim inside Visual Studio with great fidelity.

Jaime González García

Written by Jaime González García , dad, husband, software engineer, ux designer, amateur pixel artist, tinkerer and master of the arcane arts. You can also find him on Twitter jabbering about random stuff.Jaime González García