I wrote a few months ago about how important I feel it is to love your text-editor. I’ve been (and still am) a big Sublime Text advocate but I’ve recently decided to try Vim for front-end development, some C++ and everything in-between. This transition has been a result of some candid introspections and contemplations on the nature of my development workflow.
Vim’s learning curve
Vim’s ostensibly steep learning curve is one of the most cited reasons against the motion of Vim being worth learning. This point alone as a decisive factor is nonsensical. If we grant that reaching a level of proficiency with Vim would be desirable, then not investing in learning Vim now when you have time doesn’t make sense. Especially if it has a ‘steep learning curve’.
This refutation is synonymous with ‘I’m not going to do it, because it’s hard or time-consuming’ which is silly when we’re talking about learning tools that will make you more efficient long-term. Learning them as soon as possible => Sooner to be reaping the rewards of its productivity. This rings true especially as a university student where projects and deadlines are largely non-critical.
The allure of Vim
Whilst I love how comfortable and proficient I am with Sublime, one thing Vim provides is the ability to be almost absolutely location/device-agnostic due to its ubiquitousness on servers meaning I can replicate my work station almost everywhere.
Vim’s composability provides unprecedented power and creativity. It feels much more like a way of thinking than simply a text-editor. It’s the same kind of joy that you get from chaining functions eloquently. So if you’re that kind of nerd then you’ll appreciate how joyful it is to combine commands in Vim.
Alas, there is definitely not as rich of a plugin community for front-end development. Sublime handles plugins pretty damn well so if Vim were ever to get unbearably slow with a load of plugins thrown at it (a worry which is actually quite rational), it pretty much defeats the point of using it.
My current .vimrc is up on GitHub. I may follow up with some more detailed config. recommendations for front-end in later blogposts.