【问题标题】:Racket GUI: how to get rid of Emacs keybindings with framework:text%Racket GUI:如何使用框架摆脱 Emacs 键绑定:text%
【发布时间】:2020-04-09 17:18:08
【问题描述】:

使用 Racket GUI 框架,我发现文本编辑器的默认键绑定与 Emacs 相同。也就是说:对于大多数应用程序来说完全不合理。为了激活上下文菜单复制/剪切/粘贴,我使用框架中的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 中,按预期选择所有文本。

【问题讨论】:

  • 你能发布一个你目前拥有的代码示例吗?
  • 抱歉耽搁了,这出乎意料的烦人。希望这会有所帮助。

标签: racket


【解决方案1】:

Racket 的 GUI 编辑器有一个键盘映射,可以用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)

【讨论】:

  • 奇怪:代码改动很小,我们实际上失去了上下文菜单复制/粘贴/全选。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 2011-03-21
  • 2012-03-09
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多