emacs-devel
[Top][All Lists]
Advanced

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

Re: Function for deleting a key binding in a sparse keymap


From: Stefan Monnier
Subject: Re: Function for deleting a key binding in a sparse keymap
Date: Sat, 10 Dec 2005 20:12:50 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

> @item
> Characters that are self-inserting are translated according to
> @code{translation-table-for-input}. If a character is self-inserting
> then stop here.

As Kim noticed, this is wrong: this translation is applied at the very end
by the "self-insertion" function (and only if the function was correctly
fixed to take this table into account).

I suggested to move it basically to where you placed it (which implies it's
used regardless of whether it'll be self-inserting or not), but Richard
rejected it.

> @itemize @bullet
> @item
> If using @code{read-from-minibuffer} (directly or indirectly) then
> look in the keymap given as parameter then look in this. Otherwise
> look in @code{minibuffer-local-map}.

Actually, minibuffer-local-map is nothing more than the keymap used as "local
keymap" in the minibuffers.  So it shouldn't be in this list.

> @item
> If using @code{read-no-blanks-input} to read from minibuffer then look
> in @code{minibuffer-local-ns-map} first and then
> @code{minibuffer-local-map}.

Same here.  All the minibuffer-local-*-map are just various keymaps that are
used as "local keymap" in various circumstances.  So they're basically like
major mode maps for special major modes which are only used in the minibuffer.

> @item
> Is there a @code{local-map} property of the text or overlay at point?
> @item
> Is there a "local keymap" (those are for major modes)?
> @end itemize

Actually the above two are mutually exclusive: if a `local-map' property is
found, it's used instead of the local keymap.

> @itemize @bullet
> @item
> If it is an ASCII function key sequences then look in
> @code{function-key-map}. This map transforms to Emacs key sequences.

This also applies to non-ASCII sequences.  But it only applies if no binding
was found yet.

> @item
> The possibly transformed sequence after applying
> @code{function-key-map} is now handled to @code{key-translation-map}
> which works the same way.

Actually key-translation-map is different because it applies even if the
untranslated sequence already had a binding.  Also those mappings are not
repeated.


        Stefan




reply via email to

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