[racket] Need Help With Keybindings

From: David G. Kay (dgkdgk at gmail.com)
Date: Sun Sep 11 15:24:14 EDT 2011

Thank you; that's great.   I'm most of the way
there now.

Still, I'm finding the text% documentation
tough sledding; the tools seem lower-level
than I need.

Is there a keybinding file somewhere for
emacs commands?  I think changing the
actual keystrokes in that file would be the
easiest way for me to do what I want.

Thanks,

--DGK

On Sat, Sep 10, 2011 at 2:22 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:

> At Sat, 10 Sep 2011 12:56:29 -0700, "David G. Kay" wrote:
> > Hi, everyone;
> >
> > I'd like to rebind some of the DrRacket
> > editor keys.  (I'm trying to reproduce the
> > idiosyncratic editor layout I'm used to;
> > it has an emacs flavor but with different
> > keys.)
> >
> > To start, I just want to map ^t to move
> > up a line, ^v to move down, ^f to move
> > left, and ^g to move right.
> >
> > I created this file ("keys.rkt"):
> >
> > #lang s-exp framework/keybinding-lang
> >
> > (keybinding "c:t" (lambda (editor evt) (send editor previous-line)))
> > (keybinding "c:v" (lambda (editor evt) (send editor next-line)))
> > (keybinding "c:f" (lambda (editor evt) (send editor backward-character)))
> > (keybinding "c:g" (lambda (editor evt) (send editor forward-character)))
> >
> >
> > I add the file using "Add User-defined
> > Keybindings" in DrRacket.  But I get
> > this message as soon as I type one of
> > my rebound keys:
> >
> > Error running keybinding .../Scheme/keys.rkt:18:18
> >
> > send: no such method: previous-line for class:
> ...engine/test-tool.scm:36:6
> >
> >
> > It's complaining about the previous-line
> > method, but that's listed in section 7
> > (Editor Functions) of the Racket Graphical
> > Interface Toolkit manual:
> >
> http://docs.racket-lang.org/gui/Editor_Functions.html?q=Editor_Functions&q=edit
> > or%25&q=forward-select-word&q=key%20bindings
>
> I can see how it's confusing, but that isn't a list of methods. It's a
> list of strings that are mapped to functions in a keymap%, where the
> string is eventually converted to a function through the
> `call-function' method of keymap%. The extra level of indirection is an
> ugly artifact of the days when parts of the GUI toolkit were
> implemented in C++.
>
>
> For text-editor methods, look here:
>
>  http://docs.racket-lang.org/gui/text_.html
>
> I think you want to use the `move' method.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110911/6421dbf0/attachment.html>

Posted on the users mailing list.