The biggest problem Emacs has will not be solved by blog posts like this. For most people the editor is a means to an end. They are invested in their end goal, not in hunting down blog posts telling them how to make better use of their tools. If Emacs wants wider adoption is needs a better out-of-the-box experience, which is something that distros like Doom Emacs and Spacemacs offer. That's the only way to make a dent: when people boot it up it has to have the good stuff right in their face. This also means ditching the "vanilla Emacs only" snobbery.

That said, I'm the kind of person to invest time in my editor and I appreciate this post.

I understand your point of view, but as far as the Emacs community is concerned there is no problem.

Emacs is not an editor. Emacs is not an IDE. Emacs is a platform to develop your own tooling. Text is the main interface Emacs offers.

I don't speak for the Emacs community, there isn't even such a thing except maybe semi related groups that share viewpoints, usage and interests. But on the whole, I don't think the "Emacs community" is looking for users or is looking to attract users. At least not users who are looking for "text editor experiences" that mimic or take inspiration from VS Code and the likes.

I generally agree. I look at Emacs like a lisp interpreter with text editing primitives on which someone has built a decent editor.

There was a "community" about a decade or two ago. On Freenode IRC, there were regulars who hung around in #emacs and it was quite nice. There were no corporate sponsors or random startups trying to hire from there so it was genuinely just a bunch of people who enjoyed using Emacs and were chatting about it. It's a part of the reason I got really hooked into it. I still use Org heavily for meeting minutes etc.

There is still a "community" on platforms such as Mastodon, reddit, various repo's. But I don't think there is a single community that can be pointed to as "The Emacs community". This would also be "wrong" from a Libre Software point of view.

There is no "problem" in emacs (there are big technical problems, but not this one) and no need to get "most people" on emacs - the ecosystem is healthy by all means and only increasing.

The "out of the box" experience could be better - but for emacs users. Those, who expect VS Code, should just install it and live happy.

On your first paragraph: exactly. This is not a competition, Emacs is just shared software, not part of a market.

I think whoever really wants to know what Emacs is about will give it a try and spend some time with it. Or some other distro like Doom Emacs or Spacemacs or stuff like that, if they are after a better out of the box experience.

What truly is a problem and extremely difficult to solve, is getting multi core and concurrency into Emacs properly. A truly concurrent lightweight thing would be so amazing to have and make package development probably much easier. No more worrying about accidentally blocking the UI and all that.

To get there would probably break many existing packages and would probably occupy all maintainers for 3 years or so, because Emacs comes from a time, where software was not designed to support that.

That would be a problem if the Emacs project needed to attract new users that aren't "the kind of person to invest time in" their editor.

I'm not sure it does. Emacs has a healthy user base of people like you and I and appears to receive stable funding from the FSF. I don't see that changing any time soon. Emacs can be Emacs and be just fine the way it is.

I will keep suggesting new users should aim to get as close to vanilla as they have patience for, because that will teach them more about the powerful virtual machine running their text editor, and the ways it can be bent to do their bidding.

appears to receive stable funding from the FSF

No, about ten underemployed or semi-retired graybeards on the emacs.devel mailing list burn most of their waking hours futzing with emacs. That's not an exaggeration. They receive no remuneration.

That's sad. Is there a way I can fund them without going through FSF? I tried looking into it before but it seemed like FSF was the only alternative, so I assumed it was well-managed.

https://github.com/tarsius/elisp-maintainers and https://github.com/freetonik/support-emacs-community-devs list quite a few people, so you can support them directly.

Ah, thanks. At least one of them is apparently already receiving recurring donations from me!

Bro, the FSF is an unchecked post office box somewhere in Kendall Square, and besides, do you really think $10 per month makes a difference? I don't know what these guys feed off of, but it's not food or anything else that money buys.

The emacs devel mailing list is way more active than that.. although you do see some regulars there for sure.

You misunderstand. Every mailing list has their healthy share of drive-by contributions, but emacs.devel contains a handful of dudes for whom *all they do* is emacs. We're talking nights, weekends, holidays. If they were indeed working a job, the inordinate time spent on the mailing list would constitute defrauding their employer.

Why does emacs have to be for everyone? Its attraction, to this user at least, is the lifelong process of adaptation and discovery that molds it to the user, and the user to it.

It’s like a pet. I love my dog, I’m happy to tell you about my dog, share pictures, etc. But in sharing, I’m not asking you to take _my_ dog. If you’re inspired to go find your own dog, train it, care for it, you can have a dog too!

But neither taking my dog nor the first-day experience of your own dog will replicate, and asking for a dog with a good OOTB experience IMO misses the point.

FWIW Spacemacs has been breaking on update for me with depressing regularity the past couple years. I'm afraid to do it

I have rolled my own config now, but I started in spacemacs, and then moved to doom a while later. FWIW I found doom much easier to grok and generally stabler.

aquaemacs was helpful for me when I was new to emacs backin ‘07. When I forgot some commands, having a gui with menus was handy.

rest of the world is ctrl-c, ctrl-x and ctrl-v. but emacs is in completely different world.

for emacs to gain mindshare, it needs to meet people where they are, not where emacs was 30 yrs ago.

of course, emacs does not work reliably in windows, so that is another issue

M-x cua-mode enables a variety of “traditional” keybinds such as C-x / C-c / C-v for cut / copy / paste

Learning that those shortcuts are arbitrary, application-defined conventions is the first step toward enlightenment.

> of course, emacs does not work reliably in windows, so that is another issue

No, it's the same issue. In a Linux shell (say, bash or fish) ctrl-c is not "copy" but "terminate program". Most emacs editing keys (copy-paste, motion) work in the shell as they do in emacs, at least in fish and bash (and probably other places in Linux).

Ctrl-C in Emacs is not "terminate program", it is "start of user command", in most modes. Similarly, even in vi/vim, Ctrl-C does something completely different. So this has nothing to do with the terminal whatsoever.

It's an even more basic Unix affordance, that terminals had a key-binding that generated the interrupt signal, and programs could define useful behaviors that commenced upon receipt of interrupt.

It made sense that interrupt in Emacs could get into a controlled state of receiving the next command. It's a little bit like the SAK (secure attention key) concept, as seen with Windows use of ctrl-alt-del.

Edit: Ironically, as a long-term emacs user, I don't really remember any commands that start with ctrl-c! For me, the most common sequences start with ctrl-X or meta-X. Or the prefix search commands ctrl-S and ctrl-R.

If you are running Emacs, either in the terminal or in graphical mode, pressing Ctrl+C does not generate any interrupt signal, it simply passes the C-c key to Emacs, which is just a general key bind.

Now, C-c in particular is the key stroke which non-core modes are recommended to use for their key binds (for example, sgml-mode uses C-c as a prefix for all of its commands, e.g. C-c C-f for sgml-skip-tag-forward, C-c C-b for sgml-skip-tag-backward, etc). Running `killall -SIGINT emacs` will not be interpreted as a C-c key being hit in emacs, it will just cause emacs to quit.

The same thing is true for other terminal based programs, like vi. Pressing Ctrl+C in vi does not generate an interrupt signal, it just passes this key combo to vi to do with as it pleases.

Yes, but the old ways were that the terminal interface itself was in charge of translating this keycode to a signal, based on the line discipline of the terminal. It was a consistent behavior across many apps unless they took effort to modify the current terminal line discipline, i.e. put the terminal into a raw mode. And then many apps tried to do something appropriately signal-like when they decided to handle these input characters without signals.

Ctrl-c is mostly for modes, not core emacs. Org-mode and gnus have a lot of bindings. But there’s a convention that ctrl-c then <character> are not to be bound. There needs to be a modifier for <character>