There is a point in your life when the best answer to a problem is Emacs. After that, the answer to every problem is Emacs.
Every Emacs user has their story of how they got started; think of it like a superhero origin story, except without the morality play aspects, and all the characters are, erm, characters.
For the unfamiliar, Emacs1 is a text editor that comes with a scripting language, that allows you to control and aspect of the application, and extend it any way you like.
Up to 2018 I was using Evernote for my private notes and OneNote at work. I had previously used paper notepads at work, and aspects of that were nice, but things like making notes of links or finding actions again later was painful. Additionally, with paper notes, I often ended up transferring a lot of the information into emails or other documents later; which was time consuming, so it was better to make them digital from the beginning.
Then work announced that they were moving from Microsoft to Google Workspace, and there was no direct replacement for OneNote; I have seen people try and use Keep or Google Docs instead, but the results seem painful. I was also starting to get more and more annoyed with Evernote, generally it was fine, but the app was getting slower and slower. Most irritating was that I was getting regular sync errors that lead to many duplicated notes, and never knowing which of those was the last/correct one as there was no easy way of generating a diff to figure it out. Additionally I was keen to move to a simpler plain text file format, which felt more future proof and less dependent on any one company.
So the challenge was to find a replacement for taking notes and organising myself that I could use on Windows, MacOS and Linux, and for Windows, was able to install without admin rights. The solution I found was Org Mode, with only the minor inconvenience of having to deal with the near vertical learning curve of Emacs2.
Luckily, getting started with Org Mode wasn't too bad, and with only a few basic shortcuts, I could start to use it productively in its most basic form. Some things, like using the mouse, might be frowned upon by experienced users, but that bit of familiarity takes the edge of some otherwise disorientating aspects of using Emacs.
Over the years I've added bits of understanding here and there, and use more and more of the features. I've also come to understand why people, once they start using Emacs, want to use it for everything. Once you're used to it, and all the things it can do, you want to do that everywhere. I now also miss even 'small' things like being able to start selecting text with
C-space3, and then move to wherever you want the selection to stop, and not hold down shift the entire time, being able to jump or delete forwards and backwards in word steps, or even to start a search backwards. This isn't much, but all together every other editor or text interface you have to use seems clunky and slow.
I feel that my use of Emacs is the dictionary definition of "unused potential". I know it can do much more, but I've never had the time to really learn it on a fundamental level, and this is frustrating. My config and preferences are cobbled together from other people's files, and I've managed to hack together a few functions of my own to make my life easier, but that's it. I've clearly crossed some kind of threshold; I get annoyed by other applications when
C-s isn't search, and
C-y isn't paste, I've also passed the Emacs shibboleth of re-mapping my Caps Lock key to Control4. To return to my intial thought;, I see plenty of problems for which the solution is Emacs, I'm just not able to execute on them quickly enough to not get frustraited.
So I should probably add 'getting better at Emacs' to my list of things to try and do this year, of the things I could do, the return on time spent will probably be worth it. I'm just not sure what the best next steps are. I suspect it would be gaining a basic proficiency in Emacs Lisp, since once I'm able to use that reliably, I can both understand more of Emacs directly, and solve more of my problems myself, with less of a trial and error approach via packages.
If you've had a similar rut, or any ideas what you think should be my next move, I'd be happy to hear your suggestions.
Technically Emacs is a generic term, and is the name for a family of extensible text editors, but when I talk about it, I'm talking about the most well known one, GNU Emacs. ↩
At this point someone is almost certainly shouting 'why not Vi(m)?'. I have to admit I've not tried it seriously, but my impression has been that using it on Windows is less fun, as it relies a lot more on other standard Linux/Unix tools for its features. In this case Emacs' everything, including a web browser, shell, IRC client and kitchen sink, approach is actually very helpful, as you don't have to try and install a lot of other things that aren't usually present on a Windows system. ↩
The short version is that
C is short for Control, and
M (meta) usually the Alt key, so
C-x means hold down control and press x at the same time. ↩