Valdis.Kletnieks(a)vt.edu writes:
> 1) You don't know what their keyboard looks like (and we probably
> can't do the sort of things Apple did with the Macintosh 'Key Caps'
> program).
This is probably irrelevant, given that we can and should use Emacs
keystroke abstractions like "M-foo" or "C-bar". Even if we did know
what their keyboard looked like, it would be worth shit on TTY's.
Emacs key sequences at least have a well-defined meaning everywhere.
> 2) A user trying to customize keymaps may not *know* or *care*
> what the underlying Lisp function is called.
There's not much Customize can do about this, nor about your third
point. I was actually talking about a totally different (and more
earthly, dare I say) range of problems.
The situation I'd like Customize to deal with is a way to say
`M-x customize-keymap RET c-mode-map RET', and handling this sensibly.
My first attempts were to convert the keymap into an alist, and
present the user with editing the alist in a Customize-like
environment, but that sucked, for three reasons:
1) The a-list was extremely large and cumbersome to edit. This is a
general problem with Customize, which cannot (easily) *modify*
complex data structures.
2) There were problems with conversions of a-list keys (if you'll
excuse the pun) to the canonical format. For example, all of C-i,
C-I, and TAB can be assigned to different things in XEmacs, with
a list of "inheritance". These things are not easy to represent in
a UI.
3) It is hard for such view to represent all the more complex things
that keymaps can do, such as setting parents or certain flags. A
similar problem exists with editing faces via Customize.