On Text Editors

I didn’t ever try to collect any stats, but I think writing and editing text is the second thing I spend most of my time doing on a computer, first one being reading, of course. To write and edit text, one needs a text editor. Text editors are a constant source of holy wars, and I’ve been trying to make my choice (and join one of the sides) for as long as I can remember. So far, I haven’t found a text editor to swear by.

Vim is awesome. I use it whenever I work in a terminal window, for config files and a quick edit here or there. For that, it’s a perfect fit; for working on a remote server via SSH it’s the best there is. However, trying to use it as my main editor was a frustrating experience. Switching modes works great for config files, but for writing regular text, like an email or a blog post, it’s a pain — even more so considering that I usually have to switch between Latin and Cyrillic keyboard layouts. Writing code in Vim was not a very pleasant experience either. I tried to have Vim as my IDE for a couple of years, and wrote quite some code in it, but it never worked as smooth as modern IDEs designed for graphical window interfaces; the terminal-first nature that makes Vim so nice to use over an SSH connection makes the interface clumsy and confusing, even in GVim.

After trying a multitude of editors and IDEs, I finally settled in VSCodium, the open-source version of Microsoft’s Visual Studio Code. I like it more than any of the alternatives I’ve tried so far. The interface is rather clean and logical. Sane hotkey combinations don’t require me to grow an additional thumb of the other side of my palm (unlike Emacs, indeed). Thanks to the variety of plugins, I don’t need separate IDEs for every language I code in, and I can even user the same editor to work with Makefiles and Terraform configurations. I even write this very blog post in VSCodium; my blog posts are just Markdown files that are later processed by Hugo. Actually, my whole blogging process1 is done inside VSCodium: I simply commit my Markdown files to a Git repository, and server-side hooks run Hugo and other tools that make the website work. And the fact that VSCodium is open-source allows me to use it for all my activities without worrying about the privacy of my employer’s code or struggling with my license getting suddenly revoked2 for political reasons.

Have I finally found my text editor in VSCodium, then? No, not by a long shot. I dislike a lot of things about how VSCodium is clumsy to configure and operate, how convoluted it and its plugins feel at times. It does have bugs, of course, being an Electron app — that is, basically, a browser with a bunch of HTML, CSS and JavaScript slapped onto it. The amount of memory and processing power it needs to even start hurts me almost physically. And the fact that its config files are JSON makes me cringe every time; well, at least I can comfortably edit them in the same editor — as comfortably as one can edit JSON, that is.

I’ll happily purge VSCodium from all my machines as soon as I find a decent alternative. The problem is, I haven’t been able to find any for years, so VSCodium it is for me — for the forseeable future.

And Vim for use in terminals, of course.

  1. This post was largely provoked by a post by capjamesg↩︎

  2. Many of my colleagues who use JetBrains’ products had to switch IDEs lately. I guess it’s not a big deal for them, having accustomed to switching IDEs every time they need to work in another language. ↩︎


Comments can be sent as webmentions or by email.