Nearly 40 years for me. Wow! I’d note that MacOS input fields also have basic Emacs bindings for cursor movement, not just shells and browsers. Works in MacOS Mail, Evernote, etc.
Nearly 40 years for me. Wow! I’d note that MacOS input fields also have basic Emacs bindings for cursor movement, not just shells and browsers. Works in MacOS Mail, Evernote, etc.
43 years for me. Started in 1983 using Gosmacs on a black-and-white CRT terminal. Gosling too was frequently in the terminal room.
Yes, emacs keystrokes became kind of cli lingua franca, which apparently many do not know. I don't remember my self ever read about those supported explicitly anywhere, but accidentally I found out long time ago and then whenever I try new systems, programs and whatever I try which keystrokes do work. Quite often at least some work.
It's GNU Readline[0] or similar. It's all over the place, on Linux at least. Being GNU it defaults to emacs, but the vi support is also excellent. The first thing I type in any foreign bash is 'set -o vi'.
[0] - https://en.wikipedia.org/wiki/GNU_Readline
Wow, so you used the earliest public versions. Ever written a retrospective of what 40 years of Emacs has been like?
Nope. And I’m probably not a great person to write it. I’m hardly an Emacs power user. I had friends who would do everything in Emacs to the point where I would joke with them that Linux was just their Emacs boot loader. I keep lots of other apps and term windows open. My init.el file is pretty simple. I’m often aware of a vague capability that Emacs has, but I’ll brute-force my way through an editing task with keystrokes and some keyboard macros rather than add a new fancy library, at least until I’ve been forced to do the same thing a couple times per month. That said, I do remember trying to use Emacs on a 300 baud dial-up link. That was painful, though truthfully everything beyond ed would be painful at that speed.
It annoys me so much to have learned that GTK text fields used to have an Emacs editing mode, which they've hidden behind an unaccessible configuration option, and now it's hopelessly broken in modern GTK version.
I spent a day or so hacking around with kanata[0], which is a kernel level keyboard remapping tool, that lets you define[1] keyboard mapping layers in a similar way you might with QMK firmware. When I hit the control or meta/alt/option key, it activates a layer where Emacs editing keys are emulated using the GTK equivalents. For example, C-a and C-e are mapped to home/end, etc. I preserve my macOS CMD-not-control-key muscle memory this way too.
The only problem is, this is not the behavior I want in terminals or in GNU/Emacs itself. I wrote a small python daemon (managed by a systemd user service) which wakes up whenever the active window changes. Based on this info, I send a message to the TCP server that kanata (also managed by a systemd user service) provides for remote control to switch to the appropriate layer.
[0]: https://github.com/jtroo/kanata
[1]: https://gitlab.com/spudlyo/dotfiles/-/blob/master/kanata/.co...
This is so cool. Thank you!