Is anyone still using Emacs?
45 points by jmmv
45 points by jmmv
I wrote this piece because I found the topic... hilarious. Not because of this specific question, but because I'm witnessing how highly-positioned people (at work) are "discovering" command line tools now that they are "forced" to interact with CLI-based coding agents--and then trying to demonstrate how useful their new discoveries are. tmux is the shining example so far, and I'm waiting for them to realize that... Vim and Emacs are a thing too.
You know, these tools have been with us for many years, and if you ask the "advanced 10x developers" at your company, they'll likely tell you that they use them. But these tools are often disregarded as "haha, that's ancient stuff; let's move to the web!!11". You know, maybe there was a reason for those developers sticking to these tools! ;P </rant>
I'm witnessing how highly-positioned people (at work) are "discovering" command line tools now that they are "forced" to interact with CLI-based coding agents
This does feel like the one silver lining of the slop bubble, plain text is once again becoming a viable and important medium, both in terms of CLI becoming more common and a lot of newly written down oral knowledge (as long as it's human-sourced, of course). I hope once we're through the current predicament, we can keep these good parts.
Absolutely. People used to laugh at me for creating CLI wrappers around things and small binaries that automated parts of a workflow. They thought a GUI or web application was better suited. Hah!
CLI tools have always had the benefit that they're so easily embedded in scripts, recursively, building powerful abstractions. That's essentially what LLMs rely on too.
I think most Emacs users are using the GUI. I don't have the numbers, but I would bet it's the vast majority.
Sure, and I occasionally use the GUI too when I directly work on the local machine (which is rare). But the fact that I can use the exact same configuration in the shell is the key feature for me. I don't think any other editor, except Vim, offers this.
I don't. I deliberately install emacs-nox on all my machines to keep the local experience the same as the remote one.
I've been using emacs on essentially everything since a few things happened at almost the same time in the mid to late 90s:
Linux started to spread and I ran MkLinux (1995) part time on my Mac
I got a SPARC ELC the local university was throwing out for $50 plus another $50 for the guy to do a clean install of Solaris on it. So I could leave the Mac in MacOS... 1996 I think.
full time on a end-of-life sale on an HP Pentium Pro 200 server when the Pentium II was out (apparently the Pentium Pro didn't like 16 bit code, so was considered a dog once the P II was out, but mine never saw any). Late 1997?
Rhapsody (1997) -> OS X (2000)
Have you tried Tramp? Saves you having to install Emacs & sync config to multiple machines, and lets you use GUI Emacs everywhere.
I mostly use the GUI, but mainly as a slightly prettier and nicer (scroll bar, gutters, 3d shading on the modeline, etc.) version of terminal Emacs. My config runs just as well on terminal Emacs, though, and I use that plenty too.
I'm perfectly happy to run Emacs over SSH. (Tramp works, but if I'm already SSH'd to a machine, I might as well stay there if I need to edit something.)
I think the push to cli thing is maybe one additional reason, but I wouldn't bet on it being a major driver.
I've seen a lot of people - actually only a few if we're talking relative numbers - look at my terminal and say "oh that's cool can I try" and dig into the cli tools. A lot of people need to mess with this - e.g. get the docker thing built properly or authorisation of cloud tools or similar. But they do it in a terminal in Vs code and just jump back into the gui mode as soon as they're done.
I'm not saying this is wrong or anything, that's a perfectly good way to work. But to paraphrase your own post, the real power of cli isn't that one tool, it's all of them. The "Unix is my IDE" makes a lot more sense when you connect many unrelated tools and can do so with ease because they're built that way.
And even then, since it's all text, it's very easy to bind a complex workflow to a single green mouse target called "build" or something.
Again, not calling you out. My point is that I think that having to use the cli agents isn't that much of a reason for people to get into the command line, command line is.
Not fully disagreeing, just think it's not that big of an impulse.
I've been using it for 33 years, and it does everything I need in an editor or IDE.
42 years, and I'm still customizing and learning Emacs. The only thing I can't figure out how to do in GNU Emacs is WYSIWYG HTML editing, so I'm working on an Emacs subset specifically for that purpose.
Count me in as someone that just started learning it!
I tried out Doom Emacs a few years ago and bounced off because the latency was noticeable enough to be annoying. I'm not sure if native compilation has made that a thing of the past, I'm in vanilla Emacs without anything configured yet so I don't think I would notice. I'm also running 30.2 from Nixpkgs, which I think enables native compilation by default.
I mostly don't care that I can do things like write email in Emacs. I just want an editor that I can mold, and that is capable if/when I want to learn a lisp (Janet, probably). Helix doesn't have plugins (yet), so I'm pretty much out of luck on the lisp front there. I also like the "everything is text" philosophy, but we'll see how I get on with that.
There's a few things that make learning it in 2026 kind of daunting:
$THING. I've picked up Mastering Emacs for a guided learning path.hjkl keys are in the same location on all of my keyboards. The Ctrl, etc keys are not.If you're coming from Helix, maybe check out meow. It provides functionality out of the box that is like Kakoune and Helix (though I haven't personally used either so this is just from what I have heard) and tries to stay more out of your way.
I think the evil package which you have been recommended has the problem of taking over too many key-bindings and not playing nice with a lot of external packages (therefore needing lots of "adapter" packages). I find that meow for me has been very hands-off since I configured it once.
I need to figure out some coherent set of keybindings that don't make my brain melt.
So it turns out that things that make you feel like your brain is melting are actually quite good for maintaining cognitive capacity as you get older. The old “use it or lose it” aphorism applies.
We have to pick and choose when we spend our cycles so to speak, but our brain isn’t a bank, and not spending cycles at all leads to atrophy.
So don’t completely shun the brain melt. It’s a sign you are exercising your brain in a novel way and building more neuronal connections.
If you're having issues with the keybindings and you're a bit more familiar with vim, it might be worth having a look at evil. You'll probably hear admonitions that evil is for Vim refugees who don't want to learn the true Gospel of Emacs, but the True Gospel of Emacs® is that you use it the way that works best for you.
As a bit more to back up that point, I've been using Emacs since 1998 and was never a Vim aficionado. Around 2011, I started having some minor RSI issues and I decided to try different packages to help with that. I spent a few years heavily engaged in god mode, but it still felt clumsy. Then, just to prove that it wouldn't work, I tried evil, having never used vim before in my life. In a week, I was just as proficient with evil as I was with god mode. In a month, I was faster with evil than I had ever been with even the official Emacs bindings.
Now, coming back around to the True Gospel of Emacs®, that doesn't mean that there's anything wrong with using the default bindings. My wrists don't work, so my experience with them will not exactly match your own. You might also find joy in boon or meow. However, if evil does work for you, then don't feel one drop of guilt, because, while Emacs will change you, that will pale in comparison to the ways that Emacs will change for you.
It really depends on how you configure Doom. It’s also been improving overtime in that regard. The best is obviously rolling your own but it is a lot of work and projects like doom do ease the ingress of new users
The fact that the built-in keybindings are...odd.
That's what I've liked about Doom Emacs though!
I used to know the native Emacs key bindings well-enough but never found them very natural, and they were not particularly discoverable. The way Doom Emacs works, with SPC as the prefix for almost all operations and with transient menus explaining possible completions when you pause, is pretty great. I've been able to discover functionality I didn't know existed, and these don't interfere at all with the Vim modal modes. So I'm finding the mixture of Vim modes for text editing + SPC combinations for Emacs operations to be a good balance.
One plus for Emacs-native keybindings, however, is that all the basic text-manipulation ones are shared with readline and even macOS. (Mind you, I found VSCode on macOS pretty nice because macOS propagated its native Emacs-like keybindings for text management and these didn't collide with the standard clipboard management ones. When I moved to Windows and now Linux, I could just not stand VSCode without the Vim plugin.)
with transient menus explaining possible completions when you pause, is pretty great
This is why in my public Emacs documentation I recommend only two changes to the Emacs default configuration to start with, and one of them is which-key-mode, which is in base Emacs and I suspect it's what Doom uses.
Given that many Emacs shortcuts are clustered around stuff like C-x and C-c, which-key-mode enables much of this discoverability you mention.
The other change I recommend is fido-vertical-mode, which means that M-x pops a substring search of commands instead of a bare command line interface. The UI also shows the shortcuts of matched commands, which also helps with discoverability.
(Unfortunately, there's a lot of Emacs-specific terminology [like yanking, etc.] which hampers discoverability. I wish Emacs standardized some kind of aliasing to more common terms.)
I've been looking at split keyboards for a while now. Recently I started thinking about a custom one. What do people use in this area that is vim friendly?
I think starting out on vanilla Emacs is the right call, to learn where its rough edges are and where it ends. But when you feel comfortable, I can warmly recommand installing Evil as one of the first things you try from the package ecosystem. It gets you sane bindings in most places.
I'm a weirdo who uses Emacs for development, for writing, and for email, and have done so for about 15 years – yet I've never found the time or headspace to learn elisp. I don't actually know what I'm doing when I'm messing with my config file. That this is somehow still my most productive environment says something about how amazing that editor is :-)
Actually reading Mastering Emacs has been on my todo list for longer than I want to admit.
Honestly, I'm mostly in the same boat. I know a little bit of elisp via osmosis from updating/editing my configuration, but it's actually a bit embarrassing how little of the language I know.
M-x high-five
This is me, very few packages and orig key bindings. (and there isn't actually a high-five func, maybe I'll finally dig into elisp:)
Beyond writing your config file, knowing how to write a little elisp can be amazing with regexp search-and-replace. In a replacement, you can write \, and then an elisp expression. So for example:
[0-9]+ → \,(1+ \#0)
[0-9]+\.[0-9]* → \,(format "%.2f" \#0)
foo \([a-z]+\) → foo \,(capitalize \1))
Within the elisp expression in the replacement, \1 etc. evaluate to the numbered capture group, interpreted as a string, while #1 etc. evaluates to the the capture group interpreted as a number.
You can do some crazy stuff, especially if you define a small function for more complex processing and then call it from the replacement expression like this. It can let you do search and replace with some smarts.
It's one of those cool Emacs tricks that I've never seen anywhere else, but comes in quite handy every now and then.
I've used vi for decades, mostly because I can't remember how to exit.
At some point I expect to show my daughter emacs, and when she responds in confusion and horror explain that "The tradition of all dead generations weighs like a nightmare on the brains of the living." I'm sure it'll go over well.
I have flip-flopped between doom and (n)vim back and forth, but have "recently" mostly settled with neovim. Key issues for me while using emacs - and it is somehow hilarious to say - is pain to maintain. Upgrading doom frequently left me with only the nuclear option of completely reinstalling due to out-of-sync packages. Sure, I could've fixed it less "noob"y, but at some point you just stop caring and want your stuff to work. Can't afford configuration breakage and heavy editor-dependency when there is work to do. Though, I do miss org-mode and just overall navigation in emacs.
Whenever I tried any of the more "modern" solutions, say VSCode, CLion or whatever, I have the same issue - and more! Now, I have to click around awkwardly instead of plain keyboard navigation, because they don't properly implement accessibility features. "vim" motions is a crippled version of the true thing.
Why neovim nowadays? It just works. Honestly, could say the same about emacs nowadays if I'd just spent 2 mins asking a coding agent to fix my config... oh well (:
Key issues for me while using emacs - and it is somehow hilarious to say - is pain to maintain.
I've tried doom's "update" feature sometimes and always had trouble.
Nowadays I just rm -rf ~/.emacs.d/ and set up doom from scratch (I keep ~/.doom.d/ under version control) every time I feel like upgrading or have to upgrade because Emacs gets upgraded. Never had issues with this flow.
helix gang rise up
(plugins any year now)
Yup! I switched to it like about two years ago because I didn’t like vims rendering and was f**ed up with electron/vscode likes.
I got hooked on avy and some jumping plugins but what really made me stick and still is my main driver for code changes, is magit.
Yes, me. But I’m probably not that common. I deal with a client at work that their entire business involves leveraging very large csv files and apparently nobody there seems to know how to open or review data in a 1gb file. They don’t even know what the head command is to give me the headers of a csv.
Just switched to -nw after many years of X/GUI.
Using the Pgtk version only for doing presentations.
Yes, turning 10 years as an Emacs user
For decades now. No plans to change.
All day, everyday :D
I have been using Emacs for about a decade. The best part about Emacs is its malleability. Using something like Doom kinda take a hit on it, but still way better than VSCode or other editors. I am Vim to Emacs convert from the pre Neovim era and have been happy with Emacs since. In addition, now that we can ask LLMs can work with Emacs, I can ask an AI to fix any minor inconveniences that I have in my Editor and we are good.
Let me give you a small example. I wanted to update the order in which files show up in the file picker. Here is a small set of rules I wanted to apply:
I could easily do this within Emacs with a couple of lines of elisp to hook into the file sorting logic and modify it in the running Emacs instance. Even better, I could explain this much to an LLM, give it emacsclient to evaluate elisp and I have it in 5minutes without even looking at the code. If you had to do the same within VSCode, I'm assuming you have to develop a separate plugin, but then now you are likely also responsible for creating your own popup menu. And to test it, you now have to load another VSCode instance with the plugin loaded. I hope you get my point.
A lot of the work I do would be almost impossible without Emacs. The custom modes I’ve written for editing my peculiar documents would be just a pain in any other editor.
I've been considering switching back to Emacs after using (neo)vim for almost a decade but I'm not convinced that Emacs has/will have a strong anti-LLM policy for development and contributions. It seems like the only thing holding back the GNU community from using LLMs is FSF's verdict about the copyright situation of LLM generated code and I view the impact of LLMs on the environment and their relationship with copyright as the two weakest arguments one can take against LLMs.
I don't want to invest hundreds or thousands of hours on my text editor ((neo)vim) only to discover that its developers are using LLMs.