使用球拍GUI框架,我发现文本编辑器的默认键绑定与Emacs相同。也就是说:对于大多数应用程序来说,这是完全不合理的。为了激活上下文菜单Copy/Cut/Paste,我使用了框架中的racket:text%
。Control + A
不会选择所有文本,但会将插入符号移到行首。
https://docs.racket-lang.org/framework/Keymap.html
如何摆脱这种疯狂并将"Ctrl + A"
映射到"Select All"
编辑:我被要求提供一个例子,它可以被复制/粘贴到DrRacket中
#lang racket/gui
(require framework)
(define main-frame (new frame%
[label "Test Ctrl+A and Ctrl+E"]
[width 640]
[height 280]))
(define log-text (new editor-canvas%
[label #f]
[vert-margin 10]
[parent main-frame]))
;; rich text editor
(define text-editor (new racket:text%))
(send log-text set-editor text-editor)
(send text-editor insert (format "Test Ctrl+A and Ctrl+E here"))
(send main-frame show #t)
编辑:在DrRacket Ctrl+A
中,按预期选择所有文本。
发布于 2019-12-31 20:54:55
球拍的图形用户界面编辑器有一个可以用set-keymap
设置的快捷键。在keymap:get-editor
中可以找到一个编辑器,该编辑器具有绑定了Ctr+A
以选择全部的键映射表。因此,如果您添加以下行:
(send text-editor set-keymap (keymap:get-editor))
对于您的代码,它应该将键绑定从Ctr+A
更改到行首,并突出显示所有内容。
#lang racket/gui
(require framework)
(define main-frame (new frame%
[label "Test Ctrl+A and Ctrl+E"]
[width 640]
[height 280]))
(define log-text (new editor-canvas%
[label #f]
[vert-margin 10]
[parent main-frame]))
;; rich text editor
(define text-editor (new racket:text%))
(send text-editor set-keymap (keymap:get-editor))
(send log-text set-editor text-editor)
(send text-editor insert (format "Test Ctrl+A and Ctrl+E here"))
(send main-frame show #t)
https://stackoverflow.com/questions/59370251
复制相似问题