Hacker News new | ask | show | jobs
by ryanolsonx 1144 days ago
Acme is an interesting text editor for development. I've used it for React.js development before. Because of how you can script it, I could run Prettier on save and a few other things you'd normally expect in the JS world.
4 comments

I used it for about a year, once you have everything scripted and setup just how you like it it's.. Meh. Ok? I eventually got tired of only really being able to work at my desktop though (I still couldn't work out how to chord properly when using the trackpad on my laptop).

These days I use goland and vim, and I feel much more productive.. I still write crazy amounts of small tools and scripts to solve little problems though, and my .profile has like 200 alias's, so I guess some of it bled over..

It has the smoothest cut/copy/paste routine once you get it down. Moving text around is just buttery.

I personally find the lack of highlighting and auto-delimiters is a PITA for HTML/LaTeX though.

you could I suppose write a program that continuously scans the buffer and replaces things with unicode, but converts back to ascii on save.

𝕚𝕟𝕥 𝗺𝗮𝗶𝗻⦅𝑣𝑜𝑖𝑑⦆ ⦃ ⦄

> I personally find the lack of highlighting and auto-delimiters is a PITA for HTML/LaTeX though.

Sadly, I have not used acme. Wouldn't this deficiency be simple to overcome with scripting? I guess that's one particular area where emacs, being essentially a specialized LISP interpreter, encourages you to think about these things by default.

Perhaps you could script auto-delimiters. But it has no ability to format the text; you couldn't add syntax highlighting with scripting.
If only it had keybindings.
That would be missing the point. It does have limited keybindings ctrl-a = go to beginning of line ctrl-e = go to end of line ctrl-u = cut from point to beginning of line esc = select the last "stuff" just typed

The fact you can create your own "buttons" that do basically anything is pretty nice, but you REALLY want a 3 button pointing device to use it. It also doesn't care about the programming language you use to create such a button, but you will work with the filesystem metaphor provided by Acme itself to get things done.

I find the mouse interface is extremely fast, and when you couple it with the power of the plumber in Plan 9, it's a reasonably good way to navigate around a complex workflow.

It's also a reasonably small environment in terms of lines of code. The Go version (Edwood) is pretty good too! https://github.com/rjkroege/edwood

To sacrifice keyboard chording because mouse chording exists is... baffling.

You only have 4 bindings, You have at least 50 keys in your keyboard with 3 modkeys, That's a lot of combinations to do anything you wish for. Sure, use the mouse more, but to expect to not use standard keybindngs or adding any? It has to be a joke.

You can't even press the down key to go to the line below!

Acme has a handful of keybindings, like the usual ^A, ^E for navigation, ^Z for undo, etc. Plugging in new ones is a few lines of code, for example my ^S for Putall (saving all windows):

https://github.com/dexen/plan9port/commit/78324a4666c4b5e0bd...

Most of keybindings you might want to add are handled by Acme's "commands" - like Edit. If you repeat them any often, it's easy and straightforward to connect the keybinding to the command in code. Alternatively, to avoid going into C, write a shell script with ready-made command; Acme is well prepared to be managed through shell scripts. The shell scripts have full access to Acme's Windows (open files, directories, scratchpads etc), including ability to edit content, open new ones, interpret right-clicks in new ways, etc.

acme is the best unix editor period.