emacs - Emacs:启用 CUA 模式时如何重新定义 Ctrl-Enter?
问题描述
如果启用了 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
时,它的绑定会覆盖相同的全局绑定。
我通过做C-h k C-RET
in找到了那张地图cua-mode
。它告诉我:
<C-return>
运行命令cua-set-rectangle-mark
(在 中找到cua-global-keymap
),这是一个交互式自动加载的 Lisp 函数cua-rect.el
。它是必然的
<C-return>
。[在加载函数定义之前,Arg 列表不可用。]
在鼠标单击位置开始矩形。
推荐阅读
- typescript - 导出函数并将它们导入其他文件的问题
- html - 迭代ngFor中的反应形式数组对象
- android - 当子 TextView 更改它的跨度时,ScrollView 停止滚动
- java - 合并两个具有不同Employee属性的数组列表,以创建一个新的数组列表,结合两个数组列表的属性
- wireshark - 如何使用 Wireshark 分析 CANopen?
- javascript - 使用“回调”时,数组不会存储在“localStorage”中
- sql-server - Azure SQL 数据库升级
- java - 如何在 swagger-ui 中获取 POST 数据?
- sql - sql 更新列,其中列名等于 USER_KEY
- java - 在 kStreams 中使用 lambda 加入 Avro 格式数据