Skip to main content
  1. Posts/

Returning to the Church (of Emacs)

·1728 words·9 mins·
Workflow Technology Linux Emacs
Joshua Blais
Author
Joshua Blais

I think I made a mistake, team!

In my previous video and post I spoke about leaving emacs for the pastures of Neovim and a CLI/TUI-centric workflow. I made the jump earlier this year, creating a zen system that I thought would allow me to focus on creation and getting things done, while limiting the time it took to tweak and make things “perfect” (oh how we know that this is impossible.)

And, to its credit, this is a really is a good workflow!

There are many professional developers that use neovim in conjunction with CLI/TUI apps and tmux, and get by just fine. It allows one to have solid integration with the computer, using the unix philosophy of “one program that does thing well for each purpose” in our day to day, but there are a couple issues:

1. This only works in unix environments. One cannot use this development setup in mac easily nor Windows. I understand we could set up a development server and use this setup, but then we have to talk about latency, the fact we always need the internet, and costs associated. Emacs also can be used in this way, so I won’t talk about this as if it is revolutionary.

I have flirted with the idea of being entirely agnostic of my OS and using emacs for everything, something that wouldn’t really be possible with a WM/TUI/CLI workflow.

2. Keymap conflicts I had to be highly cognizant of what keys I was using across the various programs so as not to overlap and cause conflicts between my window manager and tools.

With emacs, this is a non-issue as all of your programs are contained in emacs, and all hotkeys are set to work in that environment in harmony with one another.

3. Integration Emacs truly does have the TUI/CLI workflow beat in that everything inside an emacs buffer is text - and can be moved, manipulated, and iterated upon as such. This integrates with the rest of emacs and thus allows one to then fly around a computer’s filesystem with ease, moving, copying, creating at a whim.

While people say emacs is slow, I disagree entirely when this is considered.

4. Simplicity is actually found in Emacs The amount of effort to find the “best” terminal, password manager, launcher, frontend for X Y or Z actually takes far more cognitive overhead than just simply using emacs. The argument that emacs has a hefty learning curve is understood, but so too does the combined learning curve not only of neovim, but tmux, lazygit, newsboat, ncmpcpp, rofi, mutt/neomutt, cli file manager, etc etc - is just as much if not moreso complicated than emacs.

I am grateful to the comments on my previous video to set me on this path as they were deeply enlightening to getting me to see the real potential of emacs:

img

This got my wheels turning and showed me the fullest potential of emacs.. of which I am seeing now that it is pretty well unlimited.

I had missed the mark about the philosophy behind emacs, and in reading Mastering Emacs, I came to see that I was missing the point almost entirely. I was treating it like vim, when I should have been treating it like Unix itself.

In comparing vim and emacs, we are actually comparing apples and oranges, they are not fundamentally the same thing at all:

Vim is a text editor. Emacs is a total environment.

What emacs lacks in a solid text editor, it makes up in being a great LISP interpreter.
#

(Though I do think it is a great text editor.)

You can literally use vim inside emacs with evil mode - essentially giving you the best of both worlds. You get the movements and text editing prowess that vim has been known for, and you get the power of emacs in one environment.

This too allows you to select the best way of doing things between the competing tools and then build the most effective workflow for you including both vim and emacs ways of doing things to maximize efficiency. So - it was never “either-or” it was always “both-and”.

You can install DOOM emacs and get up and running in less than 15 minutes into a crafted emacs environment that will feel familiar if you are coming from vim. This has been the jump-off point for many a-vim user over the past few years and the reason is simple - you will feel as if you are home and can be productive from the get-go. You can slowly integrate emacs into your vim life and see what power you have been missing out on in the editor war.

And, while I use a custom keyboard layout, I still have vim muscle memory, so my arrows are on my “classic h-j-k-l” keys, but they are no longer those keys.

Org mode is the GOAT
#

Everything tries to be org-mode. Everything falls short.

I even thought I could build some sort of spiritual successor to org - and that was pure hubris, there was no way I was going to beat such a well-integrated place for notes, calendaring, todos, project management, time tracking… Taskwarrior has tried and failed to do so, no shade on the developers, but it just is not nearly as good.

In returning to emacs, I immediately felt like I was home for the simple reason I missed org-mode so very much. It is a killer app inside the killer app that is emacs.

Emacs is home
#

To really get emacs, one has to live in it.

img
My splash screen welcoming me home.

Emacs is now where I do everything. This means that all my writing, programming, communication, project management, emails, music, file management, command line, everything, is contained in my emacs window.

I still use a modern web browser (firefox with mitigations), video editor (shotcut), and various cli tools (but all within emacs), but the vast majority of my time is spent in emacs. I would say about 85% of my time.

I am on a lifelong journey.
#

The thing that dawned on me was that emacs is a lifestyle, a journey if you will. It is an ever-evolving learning experience, and some may not want that. I do.

There is nowhere else to go after you come to this understanding. It is the endgame, and the reason it is still in use 40 years on is that there are purists that have kept using it all these years, iterating on configurations that are literally older than I am.

If you are one of those purists, please make a video as to how you are using emacs, because your workflow is probably legendary.

There are people on the emacs subreddit that talk about using emacs for 30 years. The journey these people are on is one that I want to look back on when I am 50 years old and my beard reaches my thighs, and I too, can be considered a wizard.

My daughter will be introduced to emacs at the age of three (or whenever she can start typing) and I will indoctrinate her! I only jest (partially).

You literally can craft a portable computing environment that follows you everywhere - there is no reason to not use emacs.

You can still use (Neo)vim.
#

I do. My Neovim configuration lives alongside my emacs config, allowing me to quickly edit and use the terminal when it makes sense to do so.

nvim is my default on all my servers.

And, because I use evil, I don’t even have to context switch or learn a bunch of new key binds.

What a world we live in where we can have our emacs and eat our neovim!

You really only need emacs and a browser.
#

Unless you are editing video like me, you don’t need much more to use a computer. Perhaps an image editor, audio recorder, and CAD software, but the vast majority of people could simply have emacs and a browser and they would be entirely set.

This has become so apparent to me that I have thought about dropping hyprland entirely in favour of gnome, and commandeered my girlfriends m2 macbook air to see if one can really get by completely agnostic of the OS if emacs becomes the day to day way we interact with a machine.

Only time will tell on this.

The comparison between vim and emacs is a silly one.
#

I know that I triggered people on my last video in making a comparison between the two. The “editor war” as it is colloquially called, is not really a war at all - can you run emacs in vim? No. But you can emulate all of the parts of vim that matter in emacs, and from there, you now have a computer that is portable and usable anywhere.

One is a text editor. The other is a LISP machine that continually interprets and is growing with you on the journey of life.

I choose my tools based on what will a) be there tomorrow (if it is closed source, I do not use it), b) customizeable to my needs, and c) a tool that will get everything I could ever need done.

Emacs fits the bill in all of these requirements.

I thing the thing you come to see is that this can be an absolute extension of you and your preferences. I really consider that I may drop the tiling window manager entirely and live in emacs going forward so that I am able to have as many keybinds properly mapped in emacs as possible.

Prot even talks about this in his emacs philosophy video. One simply takes all those external programs he is using, integrates them into emacs, and is off to the races using the same keys everywhere.

I was wrong
#

It is with humility that I admit - I was wrong.

I was excommunicated from the church of Emacs, and have repented - for it is the way forward, and will be the editor for my lifetime.

What are you using for your computing life? Are you part of the Church of Emacs?

Post in the comments below or send me an email.

As always, God bless, and until next time.