3,022 karma · joined February 14, 2015
[ my public key: https://keybase.io/agzam; my proof: https://keybase.io/agzam/sigs/La7qFk8YkbwfkgeSx7vkBWBba2f3HIpZyNVxUHvshbU ]
> My Emacs config file is a hodge-podge of little snippets I don't properly understand
People giving you truly time-saving advice. Use a good model to unhodge-podge it. You can even ask it to explain every single Lisp snippet it makes, to the detail and granularity level you prefer - want a big picture, please; would you like nitty-gritty details - ask no more. It's not like it's gonna build a "massive configuration" and absolutely will refuse to make it make sense to you.
Oh, I stand corrected. I was confused, I thought Divya did it experimentally first, for the Emacs Reader. Turns out minad really was the one who had the original prototype, and Divya wanted to use it in the Reader, then multi-people effort to make it work on Android, Mac and finally making it into the master branch. And yes, no LLMs - at least nobody publicly mentions any use of them.
Develop hacker's mindset. Don't anyone tell you how to use your computer. Especially don't let your computer to dictate you the rules. Always remain in charge.
When I started at my current job, they gave me a laptop that came installed with crap called ABR - Admin By Request. Basically, for anything that required sudo, they'd force me to run it, then click a prompt: "yes, I need the [fucking] access," then another little prompt comes up, asking for "reasons," and you're supposed to type it, to which everyone on my team types some random number of letters (because there's a minimum), then press Ok to get three-hour access.
I dealt with it for exactly three days. After that I just wrote a script that periodically checks if I have the admin rights, and then waits for me to get idle (so no sudden focus stealing), then runs the sucker, sends the request, etc. I don't even see it anymore - just happens. I'm not playing their stupid games, their "security theater", I have a job to do.
Just the other day I made this comment on the topic of "nvim vs emacs", I think it fits here well:
> editor choice shouldn't be treated like soccer or religion
Oh, I wish there was a choice here. I've been vimming since 2010, the idea of vim modality is an excellent, practical, beautiful model. It's a fantastic idea and the ideas do port. That's why I've used vim-bindings in every editor/IDE/terminal/browser I used.
Emacs, however, is not an editor. It's a Lisp REPL loop with a built-in editor. The only contenders in this space are Light Table, Nightcode, or Lem and none of them truly can compete with Emacs (at least right now), because you can't just ignore forty years of package development. Maybe some more people start using Lem and keep vibe-coding a huge body of Elisp into CL and then maybe we finally see something that can potentially dethrone Emacs.
It's not sports or a religion - you can feverishly love trains and despise airplanes, but you've got to admit, trains just can't replace airplanes, regardless of what you love and believe in.
LOL. Skiing is torture as I never understood the point of having to wear boots, since I rather liked sneakers.
This is absolutely uncalled for. Álvaro is a long-time Emacs advocate and maker of packages, long before LLMs. I guess that's why some Emacs adepts, despite their long-time commitment and contributions, refuse to be called "programmers", notably Prot (Denote), Karthik (Gptel) and Jonas (Magit). They all keep saying they are not, maybe just to avoid this kind of ungracious stigma from random people.
Some FOSS developers are one of the rarest kind of people we need to cherish and respect. They who sustain unpaid, often thankless maintenance work on important infrastructure for years, sometimes it becomes their life purpose, with zero direct financial reward, while fielding entitled bug reports. They don't anticipate any recognition, but at least let's not call their work substandard, it's not like you're getting taxed for using it.
Did anyone ever tell you how badly you suck at prophecies? This unfalsifiable prediction has enormously bad track record: people have called Emacs dead since the 90s, through XEmacs, through every IDE wave since, through Atom, Sublime, nvim, VSCode, Zed, etc.
I'm sure "Anti-AI core community" drinking themselves to oblivion and chugging anti-depressants seeing how many packages for AI integration people keep building¹ and they just can't do anything about it. Bruh, there's literally ongoing threads about built-in LLM support in emacs.devel, the latest one is not even a week old.
Magit being slow is almost entirely git subprocess spawn and output-parsing overhead, which exists in any git porcelain, not something specific to Emacs or elisp². Blaming Emacs for that is blaming the UI for the engine. I use Magit on Mac and it is not slow. It is slower than on Linux, but it ain't unusably slow.
Define "decent harness". First of all you're conflating the layers - ACP is a wire protocol; asking a protocol to be extensible is illiteracy - protocols are meant to be minimal and stable, that's literally their job. eca and agent-shell are ordinary elisp, with hooks, advising, keymaps, same mechanisms every other package uses. If that layer is hookable and advisable, it's extensible in every effing sense; extensibility was never supposed to live in the protocol underneath. Darn, I'm extending eca from inside fucking eca buffer, da fuk you even blabbering about? Whatever, skill issue. Next.
¹ https://www.reddit.com/r/emacs/comments/1uwm3c0/the_state_of...
I can also just ignore every conversation - sometimes, posted urls are more valuable than what people blabber and fight about. Imagine having to extract all the urls on the page. Some might say: "Hey, there's a browser extension for that", but...
a) the extension has its own keybindings, dissimilar UI, etc.
b) it won't ignore HN's internal URLs, so you still need to grab the list of URLs and then remove the ones you don't need in... your editor. So why not just use that, to begin with?
In Elisp, it's a one-liner. You can bind it to a key. I can also utilize sparse tree search, e.g., to collapse everything while leaving every reply that contains a keyword. With imenu, I can jump to any thread. With indirect buffers, I can compare two parts sitting on opposite ends of the discussion. I can narrow to any point, add some text, and then send a request to an LLM.
And guess what? All these things are still the same for a Reddit discussion. So when I use it in Emacs, I can still use the same ways of manipulating and extracting value.
What? Why? Who the hell would ever forbid anyone from using a tool that literally makes them more productive? I mean, as the Russians say: "If drinking vodka at work interferes with your job, quit drinking vodka... at that job"
In practice we're seeing the biggest waves of development in years. r/emacs gets daily, daily! announcements of new packages. Many of them, if not most, are not some AI-sloped trash - they are very useful. Some package makers go above and beyond - even though vibe-coded, they still show good design decisions, proper tests, hand-written documentation. Canvas stuff most likely wouldn't be possible without LLMs.
Luckily (for us), Emacs is the king of text-processing and text manipulation.
Experts often do forget their own "beginner's journey", but I honestly never remember struggling with where windows do appear in Emacs. Either because I never had any eccentric expectations of how this should work, or maybe because I had far bigger issues back in my beginnings. Maybe I didn't notice anything until I found Spacemacs, which had just started gaining some traction back then. I don't remember if they've done anything to improve beginner experience, but then, moving off Spacemacs I might have gotten annoyed, which iirc forced me to understand display-buffer-alist. And then trying Doom, I believe I had to explicitly disable all their novice-aimed improvements and rely on display-buffer-alist settings I was already comfortable with. So, I guess it's a difficult balancing game - need to make it intuitive for the beginners, while not screwing it up for the experts. I mean, if Emacs v32-33 ships with "improvements" that somehow mess with my display-buffer-alist, I'd probably get mad for like two minutes. But that's me, if anything like that to happen, I'm sure it will generate some 2000-message-long discussion thread on emacs.devel.
Clojurescripters for example can use nbb with the connected REPL and build web-scrapers while interactively "clicking" on buttons and exploring DOM directly from the editor.
In case of Emacs, it is not [just] an editor, technically it is a Lisp REPL loop with a built-in text editor. That's why you can virtually change any aspect of it on the fly, without ever having to restart it.
What's crazy that this allows to have pretty much anything "programmable". Even keyboard macros in Emacs are just series of Lisp instructions. You can compose a macro and then look at its underlying code, modify it and execute it.
---
https://www.reddit.com/r/emacs/comments/1uwm3c0/the_state_of...
Just ask Claude or whatever to hook up gptel and eca (or agent-shell). You don't even need to read anything, just literally talk to the LLM. The first step is to get to the point where agents can change Emacs from the inside out - and then, that opens the floodgates for any ideas.
Just yesterday I decided to make it possible to detach a video I'm watching (and of course controlling directly from Emacs) from my browser. The active YT video stops playing in the browser, loads mpv, and seamlessly continues, while keeping the time, speed, and volume. It's now possible with the new Canvas API to play videos directly in Emacs; at some point I may try to figure that out. Why? Well, just because I can. With Emacs, the limit is your imagination and nothing else.
Craziest thing? I never had to restart, recompile, rebuild anything. I was watching a video, thought: "hmm, a floating window would be nice..."; without missing a beat, just typed the prompt and made that happen within minutes.
Modal editing was supposed to pull users away - Evil mode made vimming better. LSPs were supposed to kill it - only made it better. Electron-based crap was supposed to make terminal-native editors look ancient with a built-in terminal, extensions, and a polished UI. Emacs got vterm, eat, and ghostel. GitKraken-like GUIs were supposed to make the git CLI unnecessary. Magit is widely considered better than any git client that exists, GUI or not. Tree-sitter was supposed to require a "real" language server architecture to get accurate parsing. Emacs 29 absorbed it natively, and font-lock, indentation, and structural navigation across major modes got noticeably better. Obsidian and Notion keep trying to overcome it - Org-mode just keeps getting better. AI was supposed to make it outdated - only enhanced it.
For half a century, humanity has been searching for an Emacs-killer. All the while, Emacs has been a killer app all along.
I'm a Lisper. I switch between Lisp dialects, sometimes multiple times a day. Since I got my LLM harness to work from inside of Emacs I no longer need to even look at Lisp that it generates for my config.
It is very justified use of AI - if anything breaks, it breaks for me, and mostly just for me. And whenever something doesn't work as expected - I don't even try to debug it anymore - my harness has introspective capabilities - it can run the profiler, monitor changing vars, debug and just fix things.
Now is the best time to try Emacs. If people before could complain that Lisp is weird and not easy to grok, it's not a valid complaint anymore.
100% completely opposite experience. Emacs is hands down the king of any kind of text-manipulation. And not only on the composition side. Most editors and IDEs are focused on the composition side of things - making text, adjusting text, amending text. And code btw, is nothing but structured text.
Emacs opens gates for text consumption - I'm reading this entire HN thread in Emacs, just like I consume Jira, Slack, Telegram, Reddit; control YT vids, my browser tabs and history, etc. I search through Splunk and Datadog logs, Wiktionary entries and just general googling - all done in Emacs. I browse million-line codebases on GH without ever having to clone them. If there's a piece of any kind of text in the computational vicinity to my active Emacs instance - this laptop and all connectable devices, I can easily make use of it.
And this gets incredibly important in the age of LLMs. I can read, manipulate, navigate, search through, diff, sort, group, slice, dice, salt and pepper any kind of text. Give me just about any other editor instead and I immediately will feel handicapped.
IDEs that are not malleable (by design) are at an exact disadvantage. I can change any aspect of my editor in the middle of typing this very comment without ever losing the state, the context, or my mental focus. No IDE even hypothetically capable of doing any of that.
With my last bankruptcy where I tried to dissect my 12K LOC config to identify the bloat and the crap I no longer needed, I found very few pieces that weren't used. Turns out, my config was already modular and lean, in the sense that everything I had there had a practical reason to be in there.
Once I started using LLMs to deal with Emacs, I decided to add a bunch of tests to run them in CI, just to prevent regressions. My config since then has grown to 26K LOC + 35K of tests. I consume 250 third-party packages, plus about 100 built-in libs.
My Emacs starts and loads within a second. I have no problems such as freezing, breaking or leaking memory. With all this stuff I have in it, it can run for days and weeks and its memory usage on Mac stays within a comparable range with the Slack app - around 500MB.
I never understood this obsession with keeping Emacs lean. Bruh, throw some shit into it, let it burn, it'll chug on any large amount of Lisp and still give you the smoothest ride ever. What's the point of keeping a colossal beast under a mountain and feeding it a low-calorie diet? It's like digital abuse. Emacs these days is capable of rendering Doom-level graphics, it's offending to use it like notepad.exe.
As I already pointed out, shit doesn't have to be "legal" (or otherwise) to be bad or immoral. Separating migrant kids (just one of the many examples) from their parents is not "legal", yet it has happened, it is happening now, and will continue - that's the deliberate plan for this admin.
> I just don't believe that the system is at any serious risk
I assure you, US citizens who were deported and got separated from their kids do have a completely different perspective. Democracy is essentially and practically dead in the US, at least for some categories of Americans.
And that's the point! He's inflicting SO MUCH damage even without it. I don't even want to imagine what he'd do if he'd had it.