Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yeah sometimes I feel like I don't want to use emacs anymore, but then I think about magit and org.

After using spacemacs for a couple years, I've started rebuilding my own. There was too much stuff going on I didn't understand and when something breaks I have no idea what to do.

Now that I know about general, ivy/swiper/counsel, use-package, and some of the other building blocks... It's pretty cool.

You know what it reminds me of? npm ~ducks~



I do agree that building your own is the only way to progress learning Emacs and most complex pieces of software. I would also add that relying on as few packages as possible, and some that are well-known and maintained is important.

My .emacs is very short, and I strive to simplify it as much as I can so that it doesn't become fragile or a liability to maintain. It's just a bit of setqs, use-package boilerplate, and 2-liner configurations for ido, company, org, magit, notmuch, pdf-tools, auctex, ess, anaconda and a few others.

That way I avoid npm-like insanities.


Do you live as much as possible in Emacs?

How do you deal psychologically with all the niceties that you give up with so little configuration?

The first innovation outside of Emacs that springs to mind is find-and-replace that lets you easily switch between literal, case-insensitive, regex, current line/selection/whole file, and current file/across multiple files.

Do you just have to tell yourself, “Well, other environments have such niceties, but I’m giving them up in exchange for other niceties that Emacs offers?”


> The first innovation outside of Emacs that springs to mind is find-and-replace that lets you easily switch between literal, case-insensitive, regex, current line/selection/whole file, and current file/across multiple files.

Not sure what you mean, but from my experience, you can do all that in Emacs. They're not one feature, but a couple distinct one. Incremental find/replace with or without regex, literal, case-insensitive within a buffer is one facility, easily accessible through C-s / C-r / C-M-s / C-M-r keys (they're all for the same feature, just "s" for forwards, "r" for backwards, also press Meta for regexes), you can switch "modes" on the fly, switch to replacement mode, or even show the whole list of matches, each with a single keychord.

Incremental searches across multiple files or open buffers can be done too, though it's not something I've tried personally (I usually pawn off multi-file searches to grep / find+grep combo, which have a built-in support in Emacs, and AFAIR also a polyfill for Windows). Consult [0] for discussion.

Editing-wise, I can't think of an outside-Emacs innovation that couldn't - and wouldn't - get ported over, ending up better than in its source place because of how Emacs deep interoperability makes all features together better than the sum of them. The main convenience you're abandoning when switching from an IDE to Emacs is the lack of deep semantic features - like really smart autocomplete, or high-quality automatic refactors - but with the development and popularization of Language Server Protocol and Debug Adapter Protocol, one can hope this won't be a problem much longer.

--

[0] - https://www.reddit.com/r/emacs/comments/7tf1ln/incremental_s...


Not sure what you mean, but from my experience, you can do all that in Emacs. They're not one feature, but a couple distinct one.

That’s why I said “easily switch between”. As in, a single piece of UI. If you’ve used any modern editor or IDE I’m sure you’ve seen this.

I can't think of an outside-Emacs innovation that couldn't - and wouldn't - get ported over

The person I was talking to uses fairly stock Emacs, so that’s not a useful point.


Although I'm relatively young, I've been using seriously Emacs for a decade an a half. Till quite recently, I only used Emacs for editing code and outlines in Org.

However, I moved a lot of my workflow into Emacs because I became really frustrated with ncurses applications like Mutt. They tend to be little silos that do not compose well with other Unix applications, unlike classical non-interactive Unix utilities. Furthermore, their configuration languages tend to be small, clunky and inflexible DSLs.

The little epiphany was realising Emacs is not a text editor, but a text-mode Lisp machine. Mostly everything is an elisp function and thus incredibly flexible and dynamic.

These days, I try to compute in 3 platforms: Emacs (for text applications, which covers most of my workflow), a web browser (Firefox, for web applications) and a terminal (xterm, for low-level Unix plumbing). I manage these 3 from a manual tiling window manager (StumpWM). I rarely use native applications.

This setup has brought tons of relief on my previous frustrations with computing. Plus, it's quite simple and mostly portable. I could migrate back to e.g. macOS and I would only need to adjust my window manager.

I think it's also irreducible. Moving web applications into Emacs is likely to cause some friction, and vice versa. I could possibly use Emacs terminal facilities, but I think keeping these separate is less fragile.

The other poster has addressed your other questions really well, I think. I have used IDEs like Visual Studio or Eclipse. And frankly, the 1% I still miss on Emacs for some languages will be covered by the Language Server Protocol.

For new and niche languages, Emacs tends to have great facilities while other IDEs tend to offer no support at all, which for me outweighs everything else. Things like Prolog, Mozart/Oz or Coq have really neat modes for Emacs.


Echoing this sentiment. I find use-package really nice for simplifying one's .emacs. I only use about 17 packages but I decided to go full greybeard and tangle my init file from an org-mode document and use-package helps keep it clean.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: