Hi.
Yep, I remember the "try to act like others" principle - there are even comments explaining such choices scattered around the code. The Evergreen key bindings seem to be set up to have _one_ hotkey per action though. On the 'be like a browser' front, I just noticed that alt+number switches to that numbered tab in both Evergreen and Terminator (as it does in Chrome).
I've also toyed with the idea of writing a new text editor, but mainly as a way of getting away from Java. Unfortunately Swing has been the only sane option for a GUI library until pretty recently (IIRC I looked at QT, but it was an absolute pain to even get started in). The last one I looked at was 'fyne' (a cross-platform GUI library for Go), which actually looks sort of sane. It didn't work under LWM, though (fyne apps crash on startup if some 3D extension feature isn't available - clever), but now that I've switched to using sway, I could try going down that route again.
The problem with writing a text editor is that there's a hell of a lot to do to replicate Evergreen's functionality. I started making a list at some point, which basically cancelled _that_ project :-)
Still, a new text editor written in Go would be rather nice. Particularly one which actually has unit tests.
The 'undo' feature is actually relatively easy if you design it into the text component at the start. If I remember correctly, we had quite a few bugs with the original Edit's undo/redo implementation, which is why I designed it into the PTextArea at the start. The undo buffer is a stack containing one object per edit (where an edit can be a single character addition/removal). It describes a position, set of characters to remove, and set of chars to add. It's completely bidirectional, so undo/redo becomes pretty easy. There's also the ability for 'compound' edits (search/replace), and for a before/after 'selection setter' so the caret/selection goes to where we expect - I think those were added later, probably not by me, but this was a long time ago and my memory is hazy.
One thing I'm really not that keen on is writing an editor which runs inside a terminal. It's kind of similar to an editor running inside a browser - you have yet another layer of abstraction to introduce lag, restrict what hotkeys you can use, and add bugs. BTW, I'd recommend reading the termcap/terminfo section of "the Unix Hater's Handbook". I found it quite eye-opening.
Anyway, I'll go ahead with the alt-arrow thing then. I'll also see if I can fix the shift+scroll horizontal scrolling in Terminator, which seems to throw some exception now.
Cheers,
Phil