Learning vim has been the best investment in education I made recently to really achieve that work-anywhere cross-platform environment
Vim (vi improved) is not the nicest editor around and some say it’s not even a complete IDE. Its vanilla installation is really just a text editor and an awkward one at that. Using the letter keys to move around , having an insert and a command mode is just the beginning of this awkwardness.
But there are people out there, quite many in fact, that do love vim.
I’m not a virtuous, I do not like learning things just for the sake of it but I do like working smarter: in that sense vim seems a step back.
Right now all the cool kids use Sublime Text as their editor of choice and I’m one of those. I’ve bought a license, downloaded it and made it mine.
Why, then, going back to the origins of text editors and still nostalgically hang on to vim? I’ll try to give my reasons here.
I’m a web developer and in the fog surrounding this definition “server administration” and “live issue tracking” are common tasks. I often needed to get on the production server and “just make it work”. What’s the best text editor available on the web server? The one you can use via an SSH session? Vim.
The first one is the step any one talks a wanna-be developer about: I needed a text editor, a good one at it, and, better yet, it might come along with an IDE.
The second step was becoming a touch typist. I totally agree with the quote “Work smarter, not harder”. No client will pay me to be slow and the fact that it took me three hours to do something that could be done in one is not a plus.
The third step was buying a US layout keyboard laptop. living in Italy this is not something you can buy in any front shop but Apple allows you to buy such a custom thing through their website. Code was born on US keyboards and it shows. Chars that are just one stroke away on a US keyboard are some awkward combination away on an Italian one (I really know little about others). If I became a touch typist in the first place it was to be faster and more efficient and being a coder means that half the chars I output everyday are awkward to look at.
The last step in this ongoing process is that vim allows me not to remove my hands from the letter keys to go to the arrow keys and mouse and back. This might not look like a terrible waste of time but it all stacks up at the end of the day. I’d like to make a point here but Derek Wyatt does it times better than me.
I’ve begun coding in a consistent way just 10 years ago and Visual Studio was my first IDE and editor. I do not remember any “old time” using consoles and terminal and my mind can’t go back to it and sigh in remembrance. On the contrary I found consoles and terminals ugly, awkward, criptic and not functional (bear with me here before exploding in flames). I’ve decided to go vim not as a going back thing but rather as a going forward thing. It’s simply more efficient in my environment and way of working: the editor I find when remotely logging into a machine is the same I use at home.
I do not praise vim as the only text editor in the world. I praise vim as the text editor that fits my real needs the best. I use Sublime Text in vintage mode if I need to and do not think that current IDEs advancements are a waste at all. If I was to develop an iOS application I would probably use XCode and would not feel stranded and alone in doing it.
I do not always have my laptop at hand but I rarely do not have my iPad or iPhone with me. In those cases i can work remotely using SSH (i use Prompt in those situations) or work in the application Buffer (I do already have all my development work set up on Dropbox) which is basically a porting of vim on iOS.
vi vanilla installation does come packed with features (although hidden behind the terminal UI) and learning to work effectively with all the features it offers just out of the box is a huge step forward; in-editor command line, scripting language and buffers just to mention some.