💾 Archived View for rtr.kalayaan.xyz › blog › 030.gmi captured on 2021-12-05 at 23:47:19. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
Fri Feb 12 19:55:32 PST 2021
Now that I've settled on my gemini ``capsule'' I would like to talk about the acme editor, a tool that became an important part in setting up and managing this blog as well as all of my recent projects. In gist, it's a graphical text editor that makes extensive use of the mouse and through this use allows text to be treated in various ways. However, this post would not be an overview of the acme editor and its basic usage. There are other, more apt, sources that you can look up online for that [1]. This post, therefore, would be about my own personal journey with text editors and how acme, sort of, ended that journey for me.
Growing up, I never really had a thought about text editors. One of my earliest memories using one was when I had to download and save a playthrough text file for a Pokemon game because we didn't have internet at our home. I ran notepad and used notepad's search function to jump through the playthrough's sections while I was playing the game. That's it. From early childhood up until I used linux, text editors for me was nothing but a window that allows you to type text and has basic functions such as word wrapping and search. Nothing more, nothing less.
This worldview changed, however, when I started using GNU/Linux around 2016. I suddenly was baffled by this weird, esoteric text editor called vim that didn't allow me to type and did weird things when I press certain keys on the keyboard. It felt that I was using an alien spaceship. I was, I thought, truly out of my comfort zone. Never have I imagined in my life that a text editor would be anything ``complex''. I've thought that notepad was the pinnacle of text editors but clearly I was wrong.
After weeks of struggling to remember the keys and reading up on vim online. I was able to properly use the editor, albeit not to its fullest extent. From there, it will take me, at the very least, six months until I was really comfortable using vim for basic tasks and I'm happy with it. Vim did its job and for the time, when I knew nothing else, I thought vim was it. There's nothing that's going to be any more ``complex'' than vim would be.
This was around 2018, when I got my first job that I have come across a series of youtube videos talking about the most ``extensible editor in existence''. Around this time, I already have a few years of ``vim-fu'' in my belt and have made use of the .vimrc file to customize my text editing experience. I have built my own custom ``editing environment'' so clearly the next logical step is to make a new one.
The allure of org-mode and being able to integrate everything into one single program is near irresistable. Emacs appeared to be vim that transcended. ``It even had a vi comptibility layer'' I thought to myself. So I obtained Emacs from my package manager and started hacking away at it. While the experience of learning Emacs was certainly easier at the time. I can't really say whether it's because Emacs is more approachable compared to vim or that I was just used to the ``linux way'' of doing things that I just knew what to do in order to get Emacs to a place where I want it to be.
By the end of that I have a fully customized Emacs client that are purely managed in org-mode. I have used org-mode so much that even my latex documents at the time were written in org-mode and then converted back to TeX. It's insane, thinking about it now. But I went through all of those hoops just to get an editor to work the way I want it to. But I was happy with it then.
Through all this time fiddling with vim and emacs, I have already known acme. I was a frequent visitor in the cat-v website and they never failed to mention how acme (or sam) are the best text editors ever. But I've always thought of those recommendations as sort of a lighthearted joke to entice gullible people into using a text editor from decades past.
But late last year, I decided to take a shot at it. I thought to myself, ``I might as well try this out to know whether this is just a meme or is there something worthwhile in it.'' Oh boy, am I surprised.
Acme is Emacs done right. While it might appear to be primitive to someone used to having their pinkies broken doing C-x chords. Acme is a text editor that, somehow, managed to integrate the mouse properly and allowed the user to be able to easily manipulate text in ways that would be hard to do in vim and emacs. Because acme uses the mouse, it's easy to highlight swatches of text and perform actions within those selections. Acme also treats everything as text and depends on how the user uses the mouse to interpret its function. Words are text, commands and filename paths all at the same time.
As an example, this entire gemini capsule was written using acme and I've used the builtin Edit function and piped that to the date command to easily print the current date on this blog post. I've also stashed all of the commands that I use to synchronize the local capsule copy in my laptop and the one on my VPS and saved all of those as a custom dump file that I can use the builtin Load function to easily load my entire gemini editing environment should I want to manage it.
All of this, done without any configuration file such as .vimrc or any external packages such as MELPA. For acme, it's all just text and because it's all text you can use the standard UNIX utilities to manipulate it.
In the seminal acme paper, Pike talked about acme as the programmer's user interface [2]. I would argue that it's more than a programmer's editor and that acme is a general text editor done right.