Spacemacs and Vim
I first came across Vim while I while I was in my bachelor studying Electrical Engineering. We had to do a few Computer Science classes where we learned how to program. In addition we were all forced to use UNIX, the vi editor, along with subversion. All this stuff was completely new to me. I was meant to be studying electrical engineering, why am I using a terminal, how am I supposed to type my C code and finish the homework assignments, how do I even exit this. Give me a GUI!!! It didn’t end well, and I struggled through that class, multiple times.
After struggling through the class, I began avoiding using Vim, but time and time again I would read about how amazing a text editor it was. How productive they were, how they could never live without it. After numerous attempts at trying to get to using it always failed. I would get frustrated at how less productive I was.
It was only up to a few months ago I was able to transition to using Vim key bindings, and it was all with the use of Emacs (specifically Spacemacs).
The biggest key factors in to finally being able to transition to using Vim key bindings are as follow:
Don’t try learn too much in one attempt (just learn the basic key commands) There is a lot you can do you with Vim Key bindings, but start of small in just how to navigate and understand the modal nature of the text editor. You can slowly pick up tips and tricks as you progress further along. Use a language you a naturally proficient in (English for me) For me there is no programming language that I know well enough, where I can naturally start typing my thoughts into code. The only language where my thoughts translate naturally into finger movements across the keyboard was English.
Aim to edit text in the fewest key strokes possible (SO link) There is often multiple ways to edit text in Vim. Some ways are more efficient than others. This StackOverflow question is good read on the better ways to edit text in Vim. This a process that you will refine as your skills develop.
Purpose to the exercise (writing lab reports using Latex) Having a goal to work toward is much motivating than mindlessly pressing keys with no clear intent. It also helps strengthen the thoughts to the right muscle memory. For me it was writing my lab reports in Latex. As Latex is not too difficult too learn, and I was writing no code it was the perfect opportunity. Other ideas could be an email, your CV, or a cover letter.
NOTE: I originally began learning using gvim, and it worked well until I wanted to start doing some customizations. I began searching for alternatives and this led me to Spacemacs, and I haven’t looked back.