我在Windows上使用GNU Emacs 22.3.1。
在我的Emacs中,我启用了delete-selection-mode
,选择一个区域并删除或替换它非常有用。但我有一个缺点。
当我在选择上写或按DEL时,Emacs不仅删除文本,而且它杀死(a.k.a。发送到剪贴板*)。这对我来说非常烦人,因为我无法控制我的杀戮戒指(a.k.a.剪贴板)并可能导致意想不到的效果。
delete-selection-mode
有一种方法可以不删除文本,只删除它吗?也许修改the source code?
(*:我已经同步了杀手圈和Windows剪贴板,所以对我来说(实际用途)它是一样的)
谢谢,丹尼尔波。即使有了Trey Jackson的想法,选择仍然是杀戮。我找到了原因。
我发现问题不在delete-selection-mode
。问题是,当我选择区域时,我用鼠标做了。并且从来没有想到鼠标正在复制文本。使用set-mark
命令和箭头键,文本最终不会被杀死,只会被删除。
我在.emacs中禁用了此行为:
(require 'delsel)
(setq mouse-drag-copy-region nil)
(global-unset-key (kbd "<mouse-2>"))
(global-unset-key (kbd "<mouse-3>"))
感谢您的建议。如果禁用此鼠标行为的此方法可能会导致与其他选项冲突,请发表评论。
答案 0 :(得分:0)
看起来您只需要修改源的一小部分,即进行此更改:
(defun delete-active-region (&optional killp)
(delete-region (point) (mark))
t)
原始代码查看了参数killp
并使用它来决定是否将区域添加到kill-ring中,并且您说您不希望这样。此更改会强制始终删除该区域。
现在,您不需要实际修改源代码,只需将该函数定义放在.emacs中(require 'delsel)
之后(或(delete-selection-mode)
之后)。
答案 1 :(得分:0)
您是否尝试使用emacs
启动-Q
。如果我这样做而只启用M-x: delete-selection-mode
,我无法重现您描述的内容。什么都没被杀死只删除?!你能查一下吗?