💾 Archived View for tsqrl.xyz › text-editors.gmi captured on 2023-04-19 at 22:25:39. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-04-28)
-=-=-=-=-=-=-
In general, I prefer low/zero configuration for my text editors. For some, this is inescapable (Emacs), while others are very capable out of the box (VS Code, neovim, acme).
For a very long time, I was an adherent to "the vim way".
It's a handy skill to have when you spend any amount of time in a remote shell configuring linux boxes. In any case, the editing ergonomics are unbeatable. Modal editing, if you're unfamiliar works like so:
Some have described it as a kind of grammar (because it's composable) or physics (because of the way that forces act upon objects).
If that sounds appealing, you may like it. I certainly did.
I even used it as my primary IDE. That was what eventually broke me of using vim full-time. I was spending more time configuring my text editor than I was writing code.
Emacs is remarkable because of all the software written for it. To understand what that means, do a web search for "magit emacs" and watch a couple of demo videos. (The punchline: magit is an amazing text UI for working with a git repo. It's probably the best, most powerful way to work with git, period.)
I actually learned Emacs first, before I went all-in on vim.
I didn't understand it all, but I developed the muscle memory for basic movement. (This has come in handy over the years because Emacs bindings are everywhere in macOS applications.)
Eventually, I adopted Emacs as my primary editor so I could use:
Each of those is a small program that runs within Emacs. org-roam and deft are what comprised my Zettelkasten for the first year or so.
I had a large-ish but not too complex set of dotfiles. I stuck this in synchting and ran the same Emacs config across many machines and Operating Systems (Linux, OpenBSD, macOS, and ChromeOS).
That was all fine and good until things got wonky on OpenBSD. And on macOS, the keybindings felt weird (mainly because the various macOS builds of Emacs are all a little different and none of them perfect).
Anyway, the configuration problem reared its head and I moved on.
Now here's a bizarre little text editor. It was the first I used that had "mouse chording" and almost zero keyboard shortcuts. (It's got ctrl-a, ctrl-e, ctrl-u, and ctrl-w -- a weird mix of Emacs and vim.)
There is no syntax highlighting. There are no plugins. There is no config file. It does what it does, which is let you open and edit text files. I like it for writing in general (as I'm doing right now with this page).
However, instead of plugins, you can use any shell command to manipulate the contents. That includes built-in shell commands or any command line program.
That's ridiculously powerful, which is why some devs (mainly Go devs, I believe) still use it today.
Watch this for an idea of what it can do:
This piece of freeware from Microsoft is probably the most popular mainstream text editor right now (2021-2022).
For writing code, it works well right out of the box. After downloading some extensions, it can become a full-featured IDE for nearly any language. (Though for refactoring, it probably won't compete with a language-specific IDE like PyCharm or Eclipse.)
To keep bloat at bay, I try not to install any extension that isn't an absolute must. And other than a couple of keyboard shortcuts (switching tabs, ctrl-a and ctrl-e for jumping to the beginning/end of line), I don't touch the configuration. I realize that there's a sync service so that I can reproduce my custom configuration to any instance of VS Code, but I'd rather not log into yet another thing.
I use it for $DAYJOB and also as an org-roam/deft replacement using the Dendron extension. Dendron is a really nice piece of software if you're into that whole Zettelkasten thing that's so popular right now.
On one of my servers, I run an instance of VS Code Server, which is VS Code (the text editor) running as a web app (the server part).
I installed the Dendron extension and a few markdown helper extensions.
This lets me use my Zettelkasten from any machine with a browser, not just machines that can run VS Code natively. (Specifically, I did this for OpenBSD.)