racketgui:如何使用framework:text%摆脱Emacs键绑定
使用Racket GUI框架,我发现文本编辑器的默认键绑定与Emacs相同。也就是说:对于大多数应用来说是完全不合理的。为了激活上下文菜单复制/剪切/粘贴,我使用framework中的racket:text%。 Control+A不选择所有文本,但将插入符号移动到行首 如何摆脱这种疯狂并将Ctrl+A映射为全选 编辑:有人问我一个例子,它可以复制/粘贴到DrRacket中racketgui:如何使用framework:text%摆脱Emacs键绑定,racket,Racket,使用Racket GUI框架,我发现文本编辑器的默认键绑定与Emacs相同。也就是说:对于大多数应用来说是完全不合理的。为了激活上下文菜单复制/剪切/粘贴,我使用framework中的racket:text%。 Control+A不选择所有文本,但将插入符号移动到行首 如何摆脱这种疯狂并将Ctrl+A映射为全选 编辑:有人问我一个例子,它可以复制/粘贴到DrRacket中 #lang racket/gui (require framework) (define main-frame (new
#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中,按预期选择所有文本。Racket的GUI编辑器有一个键映射,可以使用set-keymap进行设置。在keymap:get editor中可以找到一个编辑器,该编辑器的keymap的Ctr+A绑定为select all。因此,如果您添加该行:
(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)
你能发布一个到目前为止你拥有的代码样本吗?很抱歉延迟了,这让suss出奇地恼火。希望这能有所帮助。奇怪的是:由于代码有了小小的改变,我们实际上失去了上下文菜单“复制/粘贴/全选”。