仅在DrRacket交互窗口中重新绑定键

时间:2019-10-17 08:54:19

标签: racket

我想重新绑定

C-up"M-p : bring the previously entered expression down to the prompt"

C-down"M-n : bring the expression after the current expression in the expression history down to the prompt"

Racket的行为与默认终端不同,在默认终端中,我可以使用这些控件绑定来滚动以前的表达式。球拍manual提供了一些重新绑定的示例,但没有解释如何仅在交互窗口中重新绑定键。它的作用是使C-up和C-down保持相同的绑定,这意味着上下移动光标,这在交互提示中的编辑器窗口中非常有用。但是我不希望这样,因为我看不到它的用途。

1 个答案:

答案 0 :(得分:0)

这是我自己使用的东西。随时进行调整:

#lang s-exp framework/keybinding-lang

(require drracket/tool-lib)

(define (register-repl key command command-fallback)
  (keybinding key (λ (ed evt)
                    (define canvas (send ed get-canvas))
                    (send (send ed get-keymap) call-function
                          (if (is-a? canvas drracket:unit:interactions-canvas%)
                              command
                              command-fallback)
                          ed evt #t))))

(register-repl "d:up" "put-previous-sexp" "beginning-of-file")
(register-repl "d:down" "put-next-sexp" "end-of-file")