[Note: Possibly useful suggestion at the end]
On Tue, 01 Feb 2005, Steven E. Harris announced authoritatively:
Eric Eide <eeide(a)cs.utah.edu> writes:
> Well, FWIW, this curmudgeon *hates* pending-delete mode.
Do you map a key for delete-region, then, or maybe use kill-region
(mapped to C-w here) instead?
Or perhaps I'm doing something wrong; I typically use a marked region
to replace text, either deleting it or typing over it. With Pending
Delete disabled, that region is ignored by C-d, which I use to remove
almost anything from a buffer.
I despise pending-del and zmacs-regions both for the same reason: I use
regions interchangeably as indications that something should be done to
some hunk of text, and as navigation. I hit C-u C-SPC, C-x C-SPC and C-x
C-x so often that I wore out the control and space keys on one keyboard
doing it.
I find it really annoying to have this great glaring thing pop up merely
because I've navigated around.
I have a hacked-up package under development (should be usable by
sometime this weekend) that adds a classification, prioritization, and
auto-dropping scheme which means you never even need to drop the mark,
it drops itself for you, literally whenever you move the cursor
(although it only hits the `real' mark ring if you move more than a
screenful at once). This would be *disgusting* in conjuction with
zmacs-regions, but it's really useful in conjunction with C-u C-SPC.
But I entirely agree that the default should be changed: most people
don't do what I do, and users can always change defaults. I can always
flip the defaults back in auto-mark.el anyway. :)
However, some menu item *must* identify changed defaults (not `recently
changed': a history of all that were ever changed since we started
tracking this sort of thing), because otherwise we're torpedoing those
poor sods who do things like upgrade from 19.34 all the way to 21.x all
at once. They've already got a hell of a shock coming: let's give them a
transition plan. :)
In fact, it seems easy enough to me to have a `defaults.el' package that
keeps track of these things, so that an expert user who doesn't want any
changing defaults to disturb him (like most of us) could say
(defaults-as-at "2005-01-20")
and the system snaps all its variables to the system-wide defaults as
they were then.
(Probably site maintainers would put this in site-start.el, to avoid
shocking their users when they updated XEmacs.)
It's easy to implement: we just teach the package about the old value of
each default and the date we change it whenever we make the
change. Probably we should do it in the place where the variable was
declared, viz
(defaults-changed-at "2005-02-03" 'pending-delete-mode nil)
;;;###autoload
(defcustom pending-delete-mode t
"Non-nil when Pending Delete mode is enabled. In Pending Delete mode, typed
text replaces the selected region. Normally, you shouldn't modify this
variable by hand, but use the function `pending-delete-mode' instead. However,
you can customize the default value from the options menu (auto delete
selection)."
:type 'boolean
:set (lambda (symbol value)
(pending-delete-mode (or value 0)))
:initialize 'custom-initialize-default
:require 'pending-del
:group 'keyboard)
So then it becomes easy to remember: if you change a default, stick a
call to `defaults-changed-at' and say what the default used to be and
the current date. :)
Downside: we'd probably need to provide a copy of defaults.el in the
packages and require a package upgrade, or something like that, because
this is something that both the packages and the core should really be
using if it's to be of any use.
With a package like that, we'd have total freedom to frob the defaults
to make XEmacs more approachable for the average user, without
disrupting the experts at all; they needn't even know the defaults have
changed. (I'd say that the poor choice of defaults is undoubtedly
XEmacs's largest problem...)
I'll get writing `defaults.el' at once if anyone thinks it might get
used. It's utterly trivial, really (little more than a fancy wrapper
around `setq' and/or `custom-set-default'), and its benefits are too
large to ignore.
--
`Blish is clearly in love with language. Unfortunately,
language dislikes him intensely.' --- Russ Allbery