[slime-devel] Re: C-M-q not working in SLIME 2007-01-20
Ariel Badichi
abadichi at bezeqint.net
Tue Jan 23 14:03:22 UTC 2007
Hello,
Jeffrey Cunningham <jeffrey at cunningham.net> writes:
> On Tue Jan 23, 2007 at 02:59:54PM +0200, Ariel Badichi wrote:
> >
> >
> > I think it's correct, and this seems to have fixed it:
> >
> > (defvar slime-scratch-mode-map
> > (let ((map (make-sparse-keymap)))
> > (set-keymap-parents map (list slime-mode-map lisp-mode-map))
> > map))
> >
>
>
> I will update the documentation accordingly.
>
Not just yet :)
I realized, while taking a shower, that there's something fishy there;
I didn't know too much about keymaps, so I thought slime-mode-map
should already have lisp-mode-map as its parent, and so wondered why
this was needed. I read bits of the manual and learned about global
keymaps, minor mode keymaps, and local keymaps. The conclusion I
ended up with is this: the parent keymap shouldn't have been
slime-mode-map, but lisp-mode-map, and only that. This is because
slime-mode-map is already active because of the Slime minor mode, yet
lisp-mode-map is a local map. I tested this by evaluating
(current-local-map) in the SLIME scratch buffer and in an ordinary
Lisp Slime buffer, and the results seem to confirm this. (Showers do
that, y'know.)
So a better fix is:
(defvar slime-scratch-mode-map
(let ((map (make-sparse-keymap)))
(set-keymap-parent map lisp-mode-map)
map))
> -Jeff
Ariel
More information about the slime-devel
mailing list