Sometimes you have to go back to move forward.

Over the last two of days I tried to switch from Neovim to Sublime Text 3. I remember ST2 being the first text editor I felt wholly at home with. Most of my early professional coding work was done using it. I stuck with it, updated to ST3 when it was ready (by which I mean the eternal beta) and was happy. Then, something drove me to learn Vim — the mystical, hard-to-learn code editor that works basically everywhere. I wouldn't be surprised if people ported it to run on an IoT refrigerator already. Anyway. Vim entered my life. Then Neovim.

It took considerable effort to learn the ropes and add further functionality to it to be truly useful. It took weeks of writing down commands, repeating them, repeating them, repeating them, repeating them to finally get to a point where I was almost as productive as in Sublime Text. I couldn't say exactly why I kept using it. Maybe it was the challenge, maybe the drive to want to understand why the hell so many talented coders swear on Vim. I spent hours working over my .vimrc only to change things around again the next day. To this day, I regularly fiddle with it. It's a living, breathing organism and I know most lines by heart.

Being a terminal application, Vim has some serious shortcomings:

  • there's no way to get a properly balanced line height in any terminal
  • to get italics working, you need to resort to terminfo escape code hacks
  • opening files from a desktop environment requires ugly workarounds
  • plus dozens of tiny annoying things like indentation jumping around for no discernable reason

Tired of using the current setup and unsatisfied with the archaic UI, I set out to give ST3 another shot. After an initial phase of being wooed by absolutely working auto-indentation, smooth scrolling, great syntax highlighting, the Command Palette, it quickly became obvious that it could not replace Vim for me. Vintage Mode is quite good but it never feels natural. And what's the issue with not being able to display a correct block cursor in a text editor? You need to install a plugin for that (BlockCursorEverywhere) and even then it behaves rather weird: rounded corners, an underscore cursor still overlaid and no ex mode. Vintageous resolves this to a degree but it has its own issues. Switching between insert and normal mode isn't always reliable and having to tab-complete an auto-complete selection to actually insert it felt like driving with the handbrake on.

Vim is just too freaking versatile, well thought out and quick with the keyboard-centric approach, there's just no way to beat it. At least for me. I wish I could have proper line height settings though. For the time being I guess I have to live with the visual inconsistencies of terminal Vim.

I am aware that many of the points I raise are rather small. However, it's the small things that make all the difference. In conclusion I can say that my dream editor would be Neovim with an optional Sublime Text GUI.

Next Post Previous Post