gpt4 book ai didi

Emacs:启用 CUA 模式时如何重新定义 Ctrl-Enter?

转载 作者:行者123 更新时间:2023-12-04 10:11:59 26 4
gpt4 key购买 nike

如果 cua模式已启用,重新定义 Ctrl-Enter 没有按预期工作,总是运行 cua-set-rectangle-mark 功能。在下面的代码中你可以看到我还定义了 Alt-Enter 到我的功能,只是为了测试,它运行良好。但我想离开 Alt-Enter cua-set-rectangle-mark 因为我更喜欢用 Ctrl-Enter 调用我的函数,在当前行下方创建一行。怎么了?

(cua-mode t)
(defun vscode-insert-line-below()
(interactive)
(move-end-of-line 1)
(newline-and-indent))
(global-set-key (kbd "C-<return>") 'vscode-insert-line-below)
(global-set-key (kbd "M-<return>") 'vscode-insert-line-below)

最佳答案

这可能是你想要的:

(cua-mode t)
(defun vscode-insert-line-below()
(interactive)
(move-end-of-line 1)
(newline-and-indent))
(define-key cua-global-keymap (kbd "<C-return>") 'vscode-insert-line-below)

(您可以使用 (kbd "<C-return>")(kbd "C-<return>") ,但我喜欢使用 C-h k 向我展示的形式。)

当您在 cua-mode本地键盘映射是 cua-global-keymap ,并且它的绑定(bind)会覆盖相同的全局绑定(bind)。

我通过执行 C-h k C-RET 找到了该 map 在 cua-mode .它告诉我:

<C-return> runs the command cua-set-rectangle-mark (found in cua-global-keymap), which is an interactive autoloaded Lisp function in cua-rect.el.

It is bound to <C-return>.

[Arg list not available until function definition is loaded.]

Start rectangle at mouse click position.

关于Emacs:启用 CUA 模式时如何重新定义 Ctrl-Enter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61295861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com