So we’ve been through the evolution of a workstation - but as a software developer I have used many different tools for creating and working with source code.

In the beginning…. there was notepad. This was awful.

I quickly moved on to Crimson Editor - this was a huge upgrade. Syntax highlighting! Searching! Tabs!

Later I needed to write some VisualBasic (classic) and some .NET applications so I used the associated IDEs from Microsoft – they were ok.

Once I started mobile development I was forced to use XCode (decent) and eclipse (awful).

Soon after I discovered IntelliJ / jetbrains which seemed to be a perfect solution for a consistent and powerful IDE across different languages. At this time I was going between java, php, javascript, html, css, ruby, python, c#, obj-c, swift… the list goes on an on of course. A big moment was when I installed the ideavim plugin - which gives you vim keybindings and other vim related functionality right inside IntelliJ IDEs. It was during this time I realized the power that comes with learning how to do things “the vim way”. Starting with home-row movement keys to powerful regex search/replace - vim really speeds up the editing process.

I used IntelliJ + ideavim for many years. During this time my workstations were evolving and even my workflow was evolving (to be addressed in a future post) and a part of that natural evolution was the question “why am I not just using vim? Can it not do everything IntelliJ does?” So one day I moved over to using vim - cold-turkey – and I have never gone back.

Today I use neovim – with a few plugins. you can take a look at my vim config here – it’s also always evolving but is fairly stable lately. At the very least I have not noticed any reduction in my productivity - perhaps some increase but also I’m not wasting time and money trying to keep my software licensed and up-to-date. Plus you can flex on your fellow devs, so there’s that…

I’ve been very happy with vim – and I’m not sure what may lie ahead but I don’t currently have any itch to switch.