emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Key bindings proposal


From: Stephen J. Turnbull
Subject: Re: Key bindings proposal
Date: Tue, 03 Aug 2010 12:03:13 +0900

Uday S Reddy writes:

 > Making life a peach for the followers but really difficult for the
 > dissenters doesn't quite fit the bill.

I'm sorry, but you are wrong.  Nobody *made* life difficult for
dissenters; it just *is* difficult.  True, the Emacs developers
*chose* the relatively easy task of finding one path through a dense
maze (and even that has proved not so easy).  But to make life easy
for the dissenters is analogous to enumerating all the paths through
that maze.  Your dissenters demand a solution to a very difficult
task; Emacs doesn't make it hard for them, quite the contrary probably
Emacs is the only system which makes it possible to solve this problem
in a reasonable amount of work.  Other systems that I know of provide
at best the equivalents of `global-set-key' and `(setq global-map
full-keymap)'.  (You're welcome to point me at exceptions if you can,
of course, but all the systems I know of are limited in that way.)

We have agreed that it is possible, using defun and [remap], to do
what you propose in a loadable LISP library.  It's going to be a lot
of work, though, so I suggest you and other advocates get started.

Note that, once you've defined a few score core actions (the total
number of useful actions could easily run into the hundreds, but two
or three score, if judiciously chosen, is probably a good start) and
made note of the keymaps where they are used, it will be very easy to
make the system more robust and maintainable by making the internal
changes you and others have advocated.

But there is *zero* benefit doing things in the reverse order.  The
defun ... [remap] pattern will be sufficiently robust for use in
development of the system, just as advice.el is sufficiently robust
for development purposes.  A few minutes fiddling with a couple
special-purpose functions or macros or advice (eg, of `define-key')
will allow you to express the defun ... [remap] pattern concisely, and
all of the action definitions will then be usable if and when the
internal changes are made.  Any experimentation with the defun
... [remap] pattern that needs to be done would have to be done
anyway, in the development of an [action] pseudo-command.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]