frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor

https://www.rahuljuliato.com/posts/emacs-solo-two-years
80•celadevra_•2h ago

Comments

wilkystyle•1h ago
> That means the code is sketchy sometimes, sure, but it's in my control. I wrote it, I understand it, and when it breaks, I know exactly where to look.

This resonates with me so hard. I'm not a "no external packages" purist, but there are a number of pieces of functionality that I wrote for myself because there wasn't anything quite like what I wanted.

One example is a function to expand the region (selection) to any arbitrary set of pairing delimiters that I define in a defvar (parens, quotes, brackets, or I can can supply a custom left/right regex for matching). Then, when I execute the function, it waits for a second keypress, which is the trigger key I've defined for that matching pair, and it will expand the region to the left and the right until it meets the applicable delimiter.

Repeating the same key presses results in selecting the left and right delimiters themselves, and another repeat will extend to the next set of matching delimiters, and so on.

Even though I use a treesitter-based expand-region plug-in, my custom function is still invaluable for when I want to jump past a series of valid treesitter object expansions, or when certain text objects are just not defined in treesitter.

Some of the helpful custom expansions I have defined are:

"w" to select what Vim considers a lowercase-w word

Space to select what Vim considers an uppercase-W word

"$" to select ${...}-style expressions

"/" to select everything between forward slashes

"*" to select between asterisks (useful when editing markdown)

It's really an invaluable function for me, personally, but I always talk myself out of trying to open-source it because it has some gotchas and limitations, and I just don't want to be on the hook for trying to make everyone who uses it happy.

throwaway27448•22m ago
> "w" to select what Vim considers a lowercase-w word

?!? Wtf does this mean and how did vi come up

keithnz•16m ago
vim has two "word" motions, w and W, the lowercase w motion will see punctuation as a word boundary (as well as whitespace ) W only considers whitespace
yunnpp•49m ago
Is Eglot on par with emacs-lsp for C++? Specifically thinking about pointing it to a compile_commands.json and all of the usual C++ nonsense required for code navigation and autocomplete.
Ferret7446•19m ago
The UX will be different and is a matter of preference. The performance depends solely on your LSP. So long as your LSP is the same and configured the same, it will give you the same results for navigation/completion.
hirvi74•42m ago
This might be a paragon of masochism. Though, I am not only beyond impressed. I am beyond jealous as well.

I've been using Emacs since one of professors/mentors converted me over a decade ago back when I was attending university. As the years have progressed, I have found myself reaching for Emacs less and less. I still maintain my config and use it fairly often. I cannot use Emacs at my employer either, so that doesn't help.

However, I have always wanted to do what the author has demonstrated. I would love to be liberated from the all package dependencies I currently have. I just do not have the time nor self-discipline to do something like this. Even if the functionality would be less than or equal parity with 3rd-party packages, I would prefer the Devil I know over the ones I don't.

fedreg•30m ago
super impressive!! Going to steal some of this lisp for sure
throwaway27448•23m ago
Why are we so bad at naming things? Modules and packages are so abstract I need to google what they mean relative to the development environment just to move forward.
Ferret7446•13m ago
The "why" is kinda sketchy. The difference between what is shipped in Emacs and in ELPA is somewhat arbitrary. In fact, there are many built in packages that have their updates shipped in ELPA, meaning if you aren't using ELPA then your builtin packages might have unpatched bugs.

There's also no reason why you have to literally write everything yourself either. You can find open source licensed packages, read them to understand them, and then copy them into your config. Doing everything from scratch is a waste of time unless you enjoy the process (in which case go nuts).

It's roughly equivalent to trying to discover all of our scientific knowledge yourself from scratch vs taking "for granted" the knowledge discovered by your forebears. There is no shame or disadvantage in doing so.

Also, a critical objection:

> Writing your own packages is the best way to learn Elisp

Absolutely not. Reading a language is crucial. If all you do is write, you will pigeonhole into weird practices and generally fail to improve. Only by reading stuff written by others can you learn, as you're exposed to what other people do right and wrong, both of which will be different from you.

Of course, writing your own packages is also necessary, but not sufficient alone.

gyrgtyn•6m ago
The only reason I'm still using emacs is magit (and muscle memory). I could not make magit myself.

Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor

https://www.rahuljuliato.com/posts/emacs-solo-two-years
81•celadevra_•2h ago•10 comments

Building a Procedural Hex Map with Wave Function Collapse

https://felixturner.github.io/hex-map-wfc/article/
397•imadr•9h ago•58 comments

The “JVG algorithm” only wins on tiny numbers

https://scottaaronson.blog/?p=9615
26•jhalderm•1h ago•12 comments

Show HN: Remotely use my guitar tuner

https://realtuner.online/
77•smith-kyle•3d ago•15 comments

JSLinux Now Supports x86_64

https://bellard.org/jslinux/
254•TechTechTech•9h ago•71 comments

Is legal the same as legitimate: AI reimplementation and the erosion of copyleft

https://writings.hongminhee.org/2026/03/legal-vs-legitimate/
360•dahlia•11h ago•380 comments

Darkrealms BBS

http://www.darkrealms.ca/
28•TigerUniversity•3d ago•1 comments

The first airplane fatality

https://www.amusingplanet.com/2026/03/thomas-selfridge-first-airplane-fatality.html
61•Hooke•5h ago•13 comments

DARPA’s new X-76

https://www.darpa.mil/news/2026/darpa-new-x-76-speed-of-jet-freedom-of-helicopter
161•newer_vienna•9h ago•155 comments

“ma” is a minimalistic clone of the acme[1] editor used in Plan 9

http://www.call-with-current-continuation.org/ma/README
21•tosh•2d ago•2 comments

Launch HN: Terminal Use (YC W26) – Vercel for filesystem-based agents

87•filipbalucha•9h ago•57 comments

Oracle is building yesterday's data centers with tomorrow's debt

https://www.cnbc.com/2026/03/09/oracle-is-building-yesterdays-data-centers-with-tomorrows-debt.html
239•spenvo•5h ago•125 comments

So you want to write an “app” (2025)

https://arcanenibble.github.io/so-you-want-to-write-an-app.html
64•jmusall•5h ago•27 comments

Show HN: The Mog Programming Language

https://moglang.org
121•belisarius222•8h ago•61 comments

Florida judge rules red light camera tickets are unconstitutional

https://cbs12.com/news/local/florida-news-judge-rules-red-light-camera-tickets-unconstitutional
347•1970-01-01•9h ago•457 comments

Bluesky CEO Jay Graber is stepping down

https://bsky.social/about/blog/03-09-2026-a-new-chapter-for-bluesky
313•minimaxir•7h ago•274 comments

Show HN: DenchClaw – Local CRM on Top of OpenClaw

https://github.com/DenchHQ/DenchClaw
92•kumar_abhirup•11h ago•85 comments

Fixfest is a global gathering of repairers, tinkerers, and activists

https://fixfest.therestartproject.org/
153•robtherobber•8h ago•18 comments

Notes on Baking at the South Pole

https://www.newyorker.com/culture/the-weekend-essay/the-most-beautiful-freezer-in-the-world
36•mitchbob•7h ago•13 comments

Ireland shuts last coal plant, becomes 15th coal-free country in Europe (2025)

https://www.pv-magazine.com/2025/06/20/ireland-coal-free-ends-coal-power-generation-moneypoint/
875•robin_reala•16h ago•540 comments

Flash media longevity testing – 6 years later

https://old.reddit.com/r/DataHoarder/comments/1q6xnun/flash_media_longevity_testing_6_years_later/
134•1970-01-01•1d ago•71 comments

No leap second will be introduced at the end of June 2026

https://lists.iana.org/hyperkitty/list/tz@iana.org/thread/P6D36VZSZBUSSTSMZKFXKF4T4IXWN23P/
78•speckx•14h ago•84 comments

An opinionated take on how to do important research that matters

https://nicholas.carlini.com/writing/2026/how-to-win-a-best-paper-award.html
82•mad•10h ago•17 comments

Reverse-engineering the UniFi inform protocol

https://tamarack.cloud/blog/reverse-engineering-unifi-inform-protocol
149•baconomatic•13h ago•60 comments

Durdraw – ANSI art editor for Unix-like systems

https://durdraw.org/
48•caminanteblanco•7h ago•18 comments

Restoring a Sun SPARCstation IPX part 1: PSU and NVRAM (2020)

https://www.rs-online.com/designspark/restoring-a-sun-sparcstation-ipx-part-1-psu-and-nvram
95•ibobev•11h ago•53 comments

Rethinking Syntax: Binding by Adjacency

https://github.com/manifold-systems/manifold/blob/master/docs/articles/binding_exprs.md
41•owlstuffing•1d ago•16 comments

Velxio, Arduino Emulator

https://velxio.dev/
46•dmonterocrespo•1d ago•18 comments

Algebraic topology: knots links and braids

https://aeb.win.tue.nl/at/algtop-5.html
75•marysminefnuf•11h ago•8 comments

I don't know Apple's endgame for the Fn/Globe key–or if Apple does

https://aresluna.org/fn/
50•tambourine_man•9h ago•11 comments