首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Emacs:从自定义函数中调用cua模式cua设置矩形标记。

Emacs:从自定义函数中调用cua模式cua设置矩形标记。
EN

Stack Overflow用户
提问于 2015-12-30 02:56:30
回答 1查看 607关注 0票数 0

目前,我对它的列/矩形工具使用cua模式,如这样(我不使用它复制/粘贴):

代码语言:javascript
运行
复制
M-x cua-mode ; Enable cua-mode
<C-return>   ; Call cua-set-rectangle-mark

然后当我完成我的长方形:

代码语言:javascript
运行
复制
C-g          ; Call cua-cancel

CUA模式的绑定与其他模式绑定(例如在org模式中)发生冲突,因此有时我不得不打开/关闭cua模式。我只使用它的矩形-所以我想通过做两件事来解决这个麻烦:

1)将一个键(例如f6)绑定到一个函数,该函数在未启用时启用cua模式,并调用cua设置-矩形标记,以便我可以创建矩形。

2)覆盖cua,而cua模式是活动的,因此当按下cua模式时,它不仅退出任何矩形,而且也退出cua模式。

所以我的工作流程是:

代码语言:javascript
运行
复制
<f6> ; Enter cua-mode and call cua-set-rectangle-mark
C-g  ; Call cua-cancel and disable cua-mode

这样,当有冲突时,我就不需要不停地切换cua模式。

关于第1部分,我提出了:

代码语言:javascript
运行
复制
(defun cua-activate-plus-set-rectangle-mark()
 (interactive)
 (cua-set-rectangle-mark))

(global-set-key (kbd "<f6>") 'cua-activate-plus-set-rectangle-mark)

当cua模式已经启用时,按下f6是有效的,但是当cua模式没有启用时,则不能工作.如果我把它改变成这样:

代码语言:javascript
运行
复制
(defun cua-activate-plus-set-rectangle-mark()
 (interactive)
 (cua-mode)
 (cua-set-rectangle-mark))

不管我是否启用了cua模式,它都不起作用。

关于第二部分,我有:

代码语言:javascript
运行
复制
(defun cua-mode-off()
 "Cancels any open active region/rectangle and turns CUA mode off"
 (interactive)
 (cua-cancel)
 (setq cua-mode nil))

该函数执行我希望它做的事情,但当启用cua-模式时,我不知道如何将它绑定到cua。

所以我的问题是:

1)如何编写函数以进入cua模式并调用cua设置-矩形标记以使其按预期工作?

2)当cua模式激活以调用我的自定义函数时,我如何才能覆盖can?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-30 19:09:46

我觉得你要找的行为已经存在了。看看cua-rectangle-mark-mode。来自手册

CUA模式提供了增强的矩形支持和可见矩形高亮显示。使用C-RET启动一个矩形,使用移动命令扩展它,并使用C-xC-c剪切或复制它。RET将光标移动到矩形的下一个角(顺时针方向),因此您可以轻松地在任意方向展开它。您键入的普通文本插入到矩形中每一行的左或右(与光标位于同一侧)。 您可以通过调用cua-rectangle-mark-mode命令使用此矩形支持,而无需激活CUA。但也可以看到标准的rectangle-mark-mode。见长方形

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34522304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档