HACKER Q&A
📣 kace91

Best way to experiment with text text editing?


A few hours ago I commented in a thread that it irks me how we 'put up' with all the bad initial ux and quirks of editors like vim simply because nobody has improved over its big feature (modal editing).

Thinking about it, I'm wondering: What would be the best way to start tackling this problem?

To clarify, I don't want to deal with rewriting the hundreds of features that real life editors have to handle, from file management through text encodings to syntax highlighting. Those are completely ortogonal to the problem I'd like to tackle, which is the interaction itself.

I want to start with some sort of baseline with all those features covered, on top of which to build experimental interactions and see what novel or improved ideas I can come up with.

Should I fork a project like vscode and start there? use a simpler minimalistic non-mainstream alternative? learn emacs in depth and use that as a baseline?


  👤 josephferano Accepted Answer ✓
To build on what others are saying about Emacs, if you start exploring the package ecosystem, you're going to see quite a lot of really interesting packages that are related to improving/experimenting with the UX of editing text. While I'm not endorsing anyone in particular, I think what this list does show is just how easy it is to do pretty much whatever you want in Emacs;

https://karthinks.com/software/avy-can-do-anything/

https://github.com/jyp/boon

https://github.com/clemera/objed

https://github.com/jmorag/kakoune.el

https://github.com/meow-edit/meow/

https://github.com/xahlee/xah-fly-keys

https://github.com/Kungsgeten/ryo-modal

https://github.com/emacsorphanage/god-mode

Emacs 29 also now has treesitter and LSP mode integration built-in, a compilation mode, a comint mode for REPLs, excellent file browsing packages (I use dired/dirvish), and a few other killer features.

Now, if what you truly dislike are "quirky editors", prepare yourself for a world of hurt because vanilla Emacs departs quite a bit from "modern" text editors. I struggled with this for a while, but eventually by buying into the paradigm, I now feel that when emacs tries emulating "modern" IDE features like autocompletion, LSP, and DAP UI, I feel like it's a regression, not a progression. The point here is that you might have an "idea" of what good initial UX and lack of quirks would look like, but Emacs might change the way you think.


👤 alganet
I went for something similar in the past:

http://github.com/alganet/tau

This is emacs, but it has Sublime/VSCode keys and a selection of plugins and custom modifications and theme. All of it using elisp, no changes to the actual emacs source code. It could have gone much further than it did, and it still runs almost fine.

I've used it as my main editor for almost a year, but abandoned it a while ago.

emacs has all the stuff you'll ever need and more as elisp functions and packages, all you need to do is tame its original behavior to something you like (remap keys, etc).


👤 themodelplumber
I like your last two options.

#2 I'd possibly amend to using an alternative editing framework instead of editor. Scintilla comes to mind for example, but there are probably lots of these.

An editor-framework community would possibly also be much more interesting for the type of conversation you are capable of starting.

Good luck.


👤 nicoburns
Have you seen editors like kakoune or helix. Those are modern tales on vim style modal editing and may scratch your itch (or else be good projects to contribute to).

👤 ianai
You just described a plugin for a text editor.