目前,我对它的列/矩形工具使用cua模式,如这样(我不使用它复制/粘贴):
M-x cua-mode ; Enable cua-mode
<C-return> ; Call cua-set-rectangle-mark
然后当我完成我的长方形:
C-g ; Call cua-cancel
CUA模式的绑定与其他模式绑定(例如在org模式中)发生冲突,因此有时我不得不打开/关闭cua模式。我只使用它的矩形-所以我想通过做两件事来解决这个麻烦:
1)将一个键(例如f6)绑定到一个函数,该函数在未启用时启用cua模式,并调用cua设置-矩形标记,以便我可以创建矩形。
2)覆盖cua,而cua模式是活动的,因此当按下cua模式时,它不仅退出任何矩形,而且也退出cua模式。
所以我的工作流程是:
<f6> ; Enter cua-mode and call cua-set-rectangle-mark
C-g ; Call cua-cancel and disable cua-mode
这样,当有冲突时,我就不需要不停地切换cua模式。
关于第1部分,我提出了:
(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模式没有启用时,则不能工作.如果我把它改变成这样:
(defun cua-activate-plus-set-rectangle-mark()
(interactive)
(cua-mode)
(cua-set-rectangle-mark))
不管我是否启用了cua模式,它都不起作用。
关于第二部分,我有:
(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?
发布于 2015-12-30 19:09:46
我觉得你要找的行为已经存在了。看看cua-rectangle-mark-mode
。来自手册
CUA模式提供了增强的矩形支持和可见矩形高亮显示。使用
C-RET
启动一个矩形,使用移动命令扩展它,并使用C-x
或C-c
剪切或复制它。RET
将光标移动到矩形的下一个角(顺时针方向),因此您可以轻松地在任意方向展开它。您键入的普通文本插入到矩形中每一行的左或右(与光标位于同一侧)。 您可以通过调用cua-rectangle-mark-mode
命令使用此矩形支持,而无需激活CUA。但也可以看到标准的rectangle-mark-mode
。见长方形。
https://stackoverflow.com/questions/34522304
复制相似问题