From: Jeff Norden <jnorden@math.tntech.edu>
To: emacs-devel@gnu.org
Subject: Re: "Why is emacs so square?"
Date: Mon, 13 Jul 2020 17:36:15 -0500 [thread overview]
Message-ID: <fdlfjncaao.fsf@norden.tntech.edu> (raw)
In-Reply-To: <fd367m1v37.fsf@norden.tntech.edu> (message from Jeff Norden on Tue, 26 May 2020 12:09:48 -0500)
This is a follow-up to may post from May, plus a concrete suggestion.
Of course, my Shakespere analogy was a bit tongue-in-cheek. But software
and literature are both artistic human activities, and have more
similarities than you might think. This would be more apparent if Knuth's
concept of Literate Programming were used more widely.
Of course, software *must* be updated regularly. But I still contend that
the current pace borders on insanity. Updates often seem to be done merely
to satisfy some current "ui" or "ux" trends. In other projects, including
GPL ones, this has resulted in removing functionality and stripping out
large swaths of source code. I would hate to see that happen to emacs.
There is a Doonsbury cartoon that I like, even though it refers to the most
un-free software platform in existence:
https://www.gocomics.com/doonesbury/2014/03/16
I think the risk of emacs becoming extinct because of a lack of users is
overblown. But, I probably overstepped in arguing for some sort of elitist
attitude. I still think it would be counterproductive to concentrate on
superficial changes, like button shapes, just to attract more "warm
bodies." On the other hand, anything that makes it easier for a person to
reach the point where they say:
Hey, I never realized that you could do *that* with an editor!
is absolutely worth pursuing. This would, hopefully, help convince them of
the value of not just emacs, but free software more generally.
----------
In this last regard, it occurs to me that a small defun from my personal
dot-emacs might help. Everyone starting out with emacs eventually finds
themselves in some sort of state that they need to get out of. Often a
recursive edit, sometimes several level deep. I've never been a big fan of
ESC ESC ESC. For a while, I got in the habit of typing "M-X top-level" a
lot. Then I added the following to my dot-emacs, and have been quite happy
with it:
(defun keyboard-quit-strong ()
"Run `keyboard-quit' to return emacs to a more responsive state.
If repeated twice in a row, run `top-level' instead, to also exit
any recursive editing levels."
(interactive)
(when (eq last-command 'keyboard-quit-strong)
(setq this-command 'top-level) ;dis-arm a 3rd C-g
(ding)
(top-level))
;; Not reached after `top-level'. (A rare behavior in lisp.)
(keyboard-quit))
(global-set-key "\C-g" 'keyboard-quit-strong)
Here are my reasons for preferring this over ESC ESC ESC:
1) Everyone using emacs has to learn C-g, since it is the only way to
interrupt the interpreter. One less thing to remember is always good.
2) If you manage to get yourself 10-levels deep in recursive edits somehow,
ESC ESC ESC ESC... is pretty tedious, since it only exits one level for each
three ESC's.
3) When the first ESC ESC ESC doesn't work for some reason, and you try more,
it's easy to lose count and wind up with an extra ESC. You might type another
key before 'ESC-' appears in the echo area, with some unintended (albeit
usually benign) consequence.
4) Some of the ESC ESC ESC actions, especially delete-other-windows, seem
unexpected to me. Isn't it more confusing, rather than helpful, to have the
window configuration you've carefully set up suddenly disappear? I suppose it
might make sense after *Help* pops up, unless you've moved the point into the
*Help* buffer. It seems to me that 'C-x 1' and 'C-x 2' are bindings that just
about everyone learns early on anyway, but I could be wrong.
A few other points:
If you repeatedly type C-g, the echo area toggles between "Quit" and
"Back to top level." This nicely indicates what is going on.
If emacs is stuck in the interpreter, it takes at least three C-g's, to get
top-level to run. Despite this, I have yet to break the 'G' key on any of my
keyboards, no matter how frustrated I've gotten :-).
I don't think I have ever accidentally exited from a recursive edit that I
wanted to keep using, such as a backtrace, by unintentionally typing C-g too
many times. But this it is something to be considered. On the other hand,
I've recently used this binding *a lot* along with debug-on-entry.
----------
Hope this helps, and that anyone reading this is healthy and staying safe.
-Jeff Norden
next prev parent reply other threads:[~2020-07-13 22:36 UTC|newest]
Thread overview: 310+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-26 17:09 "Why is emacs so square?" Jeff Norden
2020-05-26 23:17 ` Dmitry Gutov
2020-05-29 14:27 ` Arthur Miller
2020-07-13 22:36 ` Jeff Norden [this message]
2020-07-13 23:37 ` Jeff Norden
2020-07-14 0:12 ` longtime user of emacs (was: "Why is emacs so square?") andres.ramirez
2020-07-14 0:39 ` longtime user of emacs Po Lu
2020-07-14 3:58 ` longtime user of emacs (was: "Why is emacs so square?") Jeff Norden
2020-07-14 5:14 ` Ihor Radchenko
2020-07-15 5:44 ` longtime user of emacs Po Lu
2020-07-15 7:10 ` Ihor Radchenko
2020-07-15 14:23 ` Eli Zaretskii
2020-07-14 21:21 ` longtime user of emacs (was: "Why is emacs so square?") andrés ramírez
[not found] <<ae2588b0-c9ab-4c29-88e4-d1c6be5dfe94@default>
[not found] ` <<CADwFkm=Vashc18sr=+h8XEdLAKa38U94jsnzc+TgABWFx0uQ9g@mail.gmail.com>
[not found] ` <<86blno9yle.wl-me@enzu.ru>
[not found] ` <<87d0845msg.fsf@yahoo.com>
[not found] ` <<WmYeBCfn8tubMj5iVHxMgGKmSC7hMl8ss713cEgHTq6o45pqJpQ5oRvZST_R4eRCfu3RENgyWVH4v2F4DK8P67GqjtnPbjnNRwFMRBrv2W0=@protonmail.com>
[not found] ` <<87h7xgjasw.fsf@yahoo.com>
[not found] ` <<0B01B576-3DC7-4FAE-8010-C9B5CB6BA024@icloud.com>
[not found] ` <<87d084htcf.fsf@yahoo.com>
[not found] ` <<149F5B4D-F219-409C-A994-096C777259EC@icloud.com>
[not found] ` <<87v9lweynz.fsf@yahoo.com>
[not found] ` <<74B639DD-3775-4BE7-B0B2-300B5CE62E14@icloud.com>
[not found] ` <<87k12bewpq.fsf@yahoo.com>
[not found] ` <<F9E49F3D-778C-4D40-93BB-F96F2027F72E@icloud.com>
[not found] ` <<87o8rnacxr.fsf@yahoo.com>
[not found] ` <<E1jQM1n-0007pM-KG@fencepost.gnu.org>
[not found] ` <<877dyaye21.fsf@yahoo.com>
[not found] ` <<E1jQi3e-0003b0-45@fencepost.gnu.org>
[not found] ` <<87blnlbnba.fsf@yahoo.com>
[not found] ` <<E1jR5v6-0002Ju-FR@fencepost.gnu.org>
[not found] ` <<87v9lsqgqw.fsf@yahoo.com>
[not found] ` <<E1jRoAd-0006LQ-TS@fencepost.gnu.org>
[not found] ` <<87eesdfdpv.fsf@gmail.com>
[not found] ` <<E1jSBbn-0003eo-Vf@fencepost.gnu.org>
[not found] ` <<83v9lo83kz.fsf@gnu.org>
2020-04-25 15:42 ` "Why is emacs so square?" Drew Adams
-- strict thread matches above, loose matches on Subject: below --
2020-04-24 16:38 ndame
2020-04-24 17:57 ` 조성빈
2020-04-24 18:02 ` Dmitry Gutov
2020-04-24 18:10 ` Eli Zaretskii
2020-04-24 18:28 ` Drew Adams
2020-04-24 18:42 ` chad
2020-04-24 18:53 ` ndame
2020-04-24 19:25 ` Eli Zaretskii
2020-04-24 22:52 ` chad
2020-04-25 7:12 ` Eli Zaretskii
2020-04-24 19:08 ` Dmitry Gutov
2020-04-24 19:22 ` ndame
2020-04-24 19:30 ` Eli Zaretskii
2020-04-24 18:40 ` Dmitry Gutov
2020-04-24 19:22 ` Eli Zaretskii
2020-04-24 21:57 ` Dmitry Gutov
2020-04-25 16:28 ` ndame
2020-04-25 20:45 ` Yuan Fu
2020-04-26 23:15 ` Dmitry Gutov
2020-04-26 3:20 ` Richard Stallman
[not found] <<8wXYP4GY9hwW-9mYv6_LGMETZ8Vz3Ob1Bec6yh6kPT7yxjTkxA3V6dXY4ELra9tYiJUxJmgXKSIEX4w8HFiPRoeGVSQHDSoBVy1voj1e3Qo=@protonmail.com>
[not found] ` <<E1jOYIC-000709-3J@fencepost.gnu.org>
[not found] ` <<CADwFkmnyYPjLd8=N7K955v5+34+wgDAUrC6C6KGG0xvT3OJr9g@mail.gmail.com>
[not found] ` <<E1jOuIG-0004CF-OB@fencepost.gnu.org>
[not found] ` <<83y2qwdmnd.fsf@gnu.org>
2020-04-16 14:58 ` Drew Adams
2020-04-16 15:34 ` Joseph Garvin
2020-04-16 15:42 ` Eli Zaretskii
2020-04-16 18:29 ` Marcin Borkowski
2020-04-17 22:05 ` Ahmed Khanzada
2020-04-18 6:47 ` martin rudalics
2020-04-18 7:07 ` ndame
2020-04-18 23:02 ` Stefan Kangas
2020-04-18 23:13 ` Ahmed Khanzada
2020-04-19 0:42 ` Po Lu
2020-04-19 2:10 ` Ahmed Khanzada
2020-04-19 2:28 ` Po Lu
2020-04-19 4:48 ` ndame
2020-04-19 5:37 ` Po Lu
2020-04-19 5:43 ` Po Lu
2020-04-19 12:59 ` Dmitry Gutov
2020-04-19 22:53 ` Po Lu
2020-04-19 23:34 ` Bob Newell
2020-04-20 4:34 ` Po Lu
2020-04-20 5:12 ` Jean-Christophe Helary
2020-04-21 1:47 ` Richard Stallman
2020-04-19 23:39 ` Jean-Christophe Helary
2020-04-20 0:12 ` Dmitry Gutov
2020-04-20 4:35 ` Po Lu
2020-04-20 13:27 ` Dmitry Gutov
2020-04-21 8:48 ` Po Lu
2020-04-24 9:10 ` Stefan Kangas
2020-04-24 15:48 ` Dmitry Gutov
2020-04-24 16:31 ` Dmitry Gutov
2020-04-20 2:19 ` Richard Stallman
2020-04-20 3:07 ` Dmitry Gutov
2020-04-20 5:07 ` Bob Newell
2020-04-20 13:49 ` Dmitry Gutov
2020-05-15 19:27 ` Steinar Bang
2020-06-04 3:26 ` Richard Stallman
2020-06-04 9:16 ` Arthur Miller
2020-06-04 21:50 ` Juri Linkov
2020-06-05 16:37 ` Tomas Hlavaty
2020-06-06 23:30 ` Juri Linkov
2020-06-07 0:33 ` Jean-Christophe Helary
2020-06-07 10:16 ` Tomas Hlavaty
2020-06-07 3:53 ` Drew Adams
2020-06-07 7:51 ` Yuri Khan
2020-06-07 9:10 ` Yuri Khan
2020-06-08 3:31 ` Richard Stallman
2020-06-07 11:59 ` Dmitry Gutov
2020-06-07 15:32 ` Drew Adams
2020-06-07 22:31 ` Juri Linkov
2020-06-07 18:19 ` Stefan Monnier
2020-06-07 18:26 ` Basil L. Contovounesios
2020-06-07 22:31 ` Juri Linkov
2020-06-07 23:24 ` andres.ramirez
2020-06-07 23:24 ` Jean-Christophe Helary
2020-06-05 3:12 ` Richard Stallman
2020-06-05 10:48 ` Marcin Borkowski
2020-06-06 3:57 ` Richard Stallman
2020-06-06 13:44 ` Arthur Miller
2020-06-07 3:37 ` Richard Stallman
2020-06-07 14:52 ` Arthur Miller
2020-06-05 13:01 ` Arthur Miller
2020-06-05 14:00 ` Eli Zaretskii
2020-06-05 14:57 ` Arthur Miller
2020-06-05 15:10 ` Eli Zaretskii
2020-06-05 16:15 ` Tomas Hlavaty
2020-06-05 17:32 ` Eli Zaretskii
2020-06-06 12:49 ` Tomas Hlavaty
2020-06-06 3:56 ` Richard Stallman
2020-06-06 6:55 ` Eli Zaretskii
2020-06-05 15:27 ` Bob Newell
2020-06-05 21:54 ` Tomas Hlavaty
2020-06-06 4:07 ` Richard Stallman
2020-06-06 6:35 ` Eli Zaretskii
2020-06-07 8:03 ` Tomas Hlavaty
2020-06-07 14:21 ` Eli Zaretskii
2020-06-07 21:57 ` Tomas Hlavaty
2020-06-07 22:03 ` Drew Adams
2020-06-08 5:41 ` Tomas Hlavaty
2020-06-08 3:31 ` Richard Stallman
2020-04-21 1:51 ` Richard Stallman
2020-04-21 7:01 ` Joost Kremers
2020-04-22 3:17 ` Richard Stallman
2020-04-22 9:12 ` Nicolas Goaziou
2020-04-22 14:25 ` Eli Zaretskii
2020-04-23 2:36 ` Richard Stallman
2020-04-23 8:41 ` Joost Kremers
2020-04-23 15:02 ` Eli Zaretskii
2020-04-24 6:36 ` Joost Kremers
2020-04-24 10:14 ` Eli Zaretskii
2020-04-24 10:28 ` Stefan Kangas
2020-04-24 11:14 ` Eli Zaretskii
2020-05-15 19:41 ` Steinar Bang
2020-04-24 10:36 ` Joost Kremers
2020-04-24 11:17 ` Eli Zaretskii
2020-06-17 3:36 ` Ricardo Wurmus
2020-06-17 3:46 ` Arthur Miller
2020-04-24 2:37 ` Richard Stallman
2020-04-24 8:47 ` Joost Kremers
2020-04-24 9:59 ` Eli Zaretskii
2020-04-24 11:25 ` Robert Pluim
2020-04-25 3:35 ` Richard Stallman
2020-04-23 14:43 ` Eli Zaretskii
2020-04-24 2:43 ` Richard Stallman
2020-04-24 10:03 ` Eli Zaretskii
2020-04-24 11:34 ` Robert Pluim
2020-04-24 12:09 ` Eli Zaretskii
2020-04-24 12:23 ` Robert Pluim
2020-04-24 12:32 ` Eli Zaretskii
2020-04-24 12:39 ` Robert Pluim
2020-04-23 12:33 ` Po Lu
2020-04-23 2:32 ` Richard Stallman
2020-04-20 4:48 ` Po Lu
2020-04-19 6:32 ` 조성빈
2020-04-19 6:39 ` Po Lu
2020-04-19 6:41 ` Po Lu
2020-04-19 7:04 ` 조성빈
2020-04-19 7:13 ` Po Lu
2020-04-19 7:45 ` 조성빈
2020-04-19 7:55 ` Po Lu
2020-04-19 7:59 ` ndame
2020-04-19 8:14 ` Po Lu
2020-04-19 8:16 ` ndame
2020-04-19 12:07 ` 조성빈
2020-04-19 12:16 ` Po Lu
2020-04-20 2:19 ` Richard Stallman
2020-04-20 4:30 ` Po Lu
2020-04-21 1:50 ` Richard Stallman
2020-04-21 2:11 ` Po Lu
2020-04-22 3:19 ` Richard Stallman
2020-04-22 4:36 ` Po Lu
2020-04-22 17:00 ` Stefan Monnier
2020-04-23 12:27 ` Po Lu
2020-04-23 15:23 ` Stefan Monnier
2020-04-26 4:13 ` Po Lu
2020-04-24 2:34 ` Richard Stallman
2020-04-24 2:50 ` Eduardo Ochs
2020-04-24 9:13 ` Kévin Le Gouguec
2020-04-25 3:36 ` Richard Stallman
2020-04-25 6:46 ` Eli Zaretskii
2020-04-26 3:24 ` Richard Stallman
2020-04-24 9:55 ` Eli Zaretskii
2020-04-19 6:52 ` ndame
2020-04-19 13:29 ` Eli Zaretskii
2020-04-19 2:18 ` Richard Stallman
2020-04-19 2:33 ` Po Lu
2020-04-19 3:05 ` Jean-Christophe Helary
2020-04-19 3:38 ` Po Lu
2020-04-19 4:55 ` ndame
2020-04-19 23:50 ` Stefan Kangas
2020-04-19 2:19 ` Richard Stallman
2020-04-16 15:42 ` Jean-Christophe Helary
2020-04-16 16:33 ` Drew Adams
2020-04-19 2:19 ` Richard Stallman
2020-04-16 11:16 ndame
2020-04-16 11:24 ` Eli Zaretskii
2020-04-15 4:49 ndame
2020-04-14 15:06 ndame
2020-04-15 3:00 ` Richard Stallman
2020-04-15 4:33 ` ndame
2020-04-15 4:39 ` Stefan Kangas
2020-04-15 4:54 ` ndame
2020-04-15 4:56 ` Emanuel Berg via Emacs development discussions.
2020-04-16 2:30 ` Richard Stallman
2020-04-16 5:28 ` Eli Zaretskii
2020-04-16 16:27 ` Clément Pit-Claudel
2020-04-16 18:26 ` Marcin Borkowski
2020-04-16 18:40 ` Eli Zaretskii
2020-04-16 18:54 ` Drew Adams
2020-04-16 17:32 ` Bob Newell
2020-05-14 2:32 ` Stefan Kangas
2020-05-14 15:53 ` Drew Adams
2020-04-16 5:02 ` Jorge Javier Araya Navarro
2020-04-16 21:31 ` Juri Linkov
2020-04-15 6:27 ` Eli Zaretskii
2020-04-15 14:17 ` Dmitry Gutov
2020-04-15 14:31 ` Eli Zaretskii
2020-04-15 16:34 ` Ulrich Mueller
2020-04-16 10:14 ` Alex Bennée
2020-04-16 10:22 ` Eli Zaretskii
2020-04-16 23:23 ` chad
2020-04-18 2:03 ` Richard Stallman
2020-04-18 7:06 ` Eli Zaretskii
2020-04-20 22:14 ` chad
2020-04-21 8:43 ` Po Lu
2020-04-21 8:44 ` Po Lu
2020-04-15 17:15 ` Dmitry Gutov
2020-04-15 20:08 ` chad
2020-04-15 20:44 ` ndame
2020-04-16 5:06 ` Eli Zaretskii
2020-04-16 6:00 ` ndame
2020-04-16 14:26 ` Eli Zaretskii
2020-04-16 15:52 ` ndame
2020-04-16 16:25 ` ndame
2020-04-17 2:25 ` Richard Stallman
2020-04-16 19:14 ` ndame
2020-04-16 19:26 ` Eli Zaretskii
2020-04-16 19:33 ` ndame
2020-04-16 20:04 ` Dmitry Gutov
2020-04-16 20:30 ` ndame
2020-04-17 7:06 ` Eli Zaretskii
2020-04-17 7:28 ` Jean-Christophe Helary
2020-04-17 10:00 ` Eli Zaretskii
2020-04-21 23:54 ` Dmitry Gutov
2020-04-22 13:21 ` Eli Zaretskii
2020-04-22 14:05 ` Clément Pit-Claudel
2020-04-22 14:29 ` Eli Zaretskii
2020-04-22 15:17 ` Clément Pit-Claudel
2020-04-22 16:14 ` Dmitry Gutov
2020-04-22 16:55 ` Eli Zaretskii
2020-04-22 17:04 ` Clément Pit-Claudel
2020-04-22 17:06 ` Dmitry Gutov
2020-04-22 17:19 ` Eli Zaretskii
2020-04-22 17:34 ` Dmitry Gutov
2020-04-22 18:09 ` Eli Zaretskii
2020-04-22 18:07 ` chad
2020-04-22 18:24 ` Eli Zaretskii
2020-04-22 18:45 ` Dmitry Gutov
2020-04-23 9:42 ` Stefan Kangas
2020-04-23 15:04 ` Eli Zaretskii
2020-04-23 21:46 ` Dmitry Gutov
2020-04-23 20:36 ` Alan Third
2020-04-23 17:10 ` Juan José García-Ripoll
2020-04-22 17:32 ` chad
2020-04-22 16:16 ` Dmitry Gutov
2020-04-22 16:22 ` Eli Zaretskii
2020-04-22 16:29 ` Robert Pluim
2020-04-22 18:02 ` Iñigo Serna
2020-04-22 18:05 ` Robert Pluim
2020-04-23 12:36 ` Po Lu
2020-04-17 7:36 ` Stefan Kangas
2020-04-17 9:51 ` Eli Zaretskii
2020-04-17 8:50 ` ndame
2020-04-17 9:59 ` Eli Zaretskii
2020-04-17 16:08 ` ndame
2020-04-18 2:04 ` Richard Stallman
2020-04-18 9:53 ` Robert Pluim
2020-04-18 16:20 ` ndame
2020-04-19 2:20 ` Richard Stallman
2020-04-19 2:33 ` Dmitry Gutov
2020-04-19 13:20 ` Eli Zaretskii
2020-04-20 2:18 ` Richard Stallman
2020-04-20 14:55 ` Eli Zaretskii
2020-04-21 1:52 ` Richard Stallman
2020-04-21 4:40 ` ndame
2020-04-22 3:17 ` Richard Stallman
2020-04-18 2:04 ` Richard Stallman
2020-04-15 22:11 ` Bob Newell
2020-04-15 3:35 ` Bob Newell
2020-04-15 3:44 ` Jean-Christophe Helary
2020-04-15 6:28 ` Eli Zaretskii
2020-04-15 13:57 ` Tim Cross
2020-04-15 14:09 ` Eli Zaretskii
2020-04-16 17:03 ` Clément Pit-Claudel
2020-04-16 17:22 ` Eli Zaretskii
2020-04-16 18:11 ` Clément Pit-Claudel
2020-04-16 18:21 ` Eli Zaretskii
2020-04-16 19:51 ` Clément Pit-Claudel
2020-04-16 19:52 ` Clément Pit-Claudel
2020-04-17 7:09 ` Eli Zaretskii
2020-04-17 13:43 ` Stefan Monnier
2020-04-17 14:13 ` Clément Pit-Claudel
2020-04-17 14:46 ` Eli Zaretskii
2020-04-17 15:27 ` Clément Pit-Claudel
2020-04-17 15:38 ` Eli Zaretskii
2020-04-17 15:52 ` Clément Pit-Claudel
2020-04-17 17:16 ` Eli Zaretskii
2020-04-17 17:40 ` Clément Pit-Claudel
2020-04-17 17:45 ` Eli Zaretskii
2020-04-17 17:57 ` Clément Pit-Claudel
2020-04-17 18:36 ` Eli Zaretskii
2020-04-17 18:51 ` Eli Zaretskii
2020-04-17 19:31 ` Clément Pit-Claudel
2020-04-17 20:14 ` Stefan Monnier
2020-04-17 20:57 ` Clément Pit-Claudel
2020-04-15 14:11 ` Andreas Schwab
2020-04-15 4:14 ` Emanuel Berg via Emacs development discussions.
2020-04-15 22:09 ` Christopher Lemmer Webber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fdlfjncaao.fsf@norden.tntech.edu \
--to=jnorden@math.tntech.edu \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.