Emacs:启用 CUA 模式时如何重新定义 Ctrl-Enter?
Emacs: How to redefine Ctrl-Enter when CUA-mode is enabled?
如果 cua-mode 启用,重新定义 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
,并且其绑定会覆盖相同的全局绑定。
我通过在 cua-mode
中执行 C-h k C-RET
找到了那个地图。它告诉我:
<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.
如果 cua-mode 启用,重新定义 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
,并且其绑定会覆盖相同的全局绑定。
我通过在 cua-mode
中执行 C-h k C-RET
找到了那个地图。它告诉我:
<C-return>
runs the commandcua-set-rectangle-mark
(found incua-global-keymap
), which is an interactive autoloaded Lisp function incua-rect.el
.It is bound to
<C-return>
.[Arg list not available until function definition is loaded.]
Start rectangle at mouse click position.