<div><br></div>Thank you; that&#39;s great.   I&#39;m most of the way<div>there now.</div><div><br></div><div>Still, I&#39;m finding the text% documentation</div><div>tough sledding; the tools seem lower-level</div><div>than I need.</div>
<div><br></div><div>Is there a keybinding file somewhere for</div><div>emacs commands?  I think changing the</div><div>actual keystrokes in that file would be the</div><div>easiest way for me to do what I want.</div><div>
<br></div><div>Thanks,</div><div><br></div><div>--DGK<br><br><div class="gmail_quote">On Sat, Sep 10, 2011 at 2:22 PM, Matthew Flatt <span dir="ltr">&lt;<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div></div><div>At Sat, 10 Sep 2011 12:56:29 -0700, &quot;David G. Kay&quot; wrote:<br>
&gt; Hi, everyone;<br>
&gt;<br>
&gt; I&#39;d like to rebind some of the DrRacket<br>
&gt; editor keys.  (I&#39;m trying to reproduce the<br>
&gt; idiosyncratic editor layout I&#39;m used to;<br>
&gt; it has an emacs flavor but with different<br>
&gt; keys.)<br>
&gt;<br>
&gt; To start, I just want to map ^t to move<br>
&gt; up a line, ^v to move down, ^f to move<br>
&gt; left, and ^g to move right.<br>
&gt;<br>
&gt; I created this file (&quot;keys.rkt&quot;):<br>
&gt;<br>
&gt; #lang s-exp framework/keybinding-lang<br>
&gt;<br>
&gt; (keybinding &quot;c:t&quot; (lambda (editor evt) (send editor previous-line)))<br>
&gt; (keybinding &quot;c:v&quot; (lambda (editor evt) (send editor next-line)))<br>
&gt; (keybinding &quot;c:f&quot; (lambda (editor evt) (send editor backward-character)))<br>
&gt; (keybinding &quot;c:g&quot; (lambda (editor evt) (send editor forward-character)))<br>
&gt;<br>
&gt;<br>
&gt; I add the file using &quot;Add User-defined<br>
&gt; Keybindings&quot; in DrRacket.  But I get<br>
&gt; this message as soon as I type one of<br>
&gt; my rebound keys:<br>
&gt;<br>
&gt; Error running keybinding .../Scheme/keys.rkt:18:18<br>
&gt;<br>
&gt; send: no such method: previous-line for class: ...engine/test-tool.scm:36:6<br>
&gt;<br>
&gt;<br>
&gt; It&#39;s complaining about the previous-line<br>
&gt; method, but that&#39;s listed in section 7<br>
&gt; (Editor Functions) of the Racket Graphical<br>
&gt; Interface Toolkit manual:<br>
&gt; <a href="http://docs.racket-lang.org/gui/Editor_Functions.html?q=Editor_Functions&amp;q=edit" target="_blank">http://docs.racket-lang.org/gui/Editor_Functions.html?q=Editor_Functions&amp;q=edit</a><br>
&gt; or%25&amp;q=forward-select-word&amp;q=key%20bindings<br>
<br>
</div></div>I can see how it&#39;s confusing, but that isn&#39;t a list of methods. It&#39;s a<br>
list of strings that are mapped to functions in a keymap%, where the<br>
string is eventually converted to a function through the<br>
`call-function&#39; method of keymap%. The extra level of indirection is an<br>
ugly artifact of the days when parts of the GUI toolkit were<br>
implemented in C++.<br>
<br>
<br>
For text-editor methods, look here:<br>
<br>
  <a href="http://docs.racket-lang.org/gui/text_.html" target="_blank">http://docs.racket-lang.org/gui/text_.html</a><br>
<br>
I think you want to use the `move&#39; method.<br>
<br>
</blockquote></div><br>
</div>