0

我在 Windows 上使用 GNU Emacs 22.3.1。

在我的 Emacs 中,我启用delete-selection-mode了 ,选择一个区域并删除或替换它非常有用。但我有一个缺点。

当我在所选内容上写入或按 DEL 时,Emacs 不仅会删除文本,还会杀死(也就是发送到剪贴板*)。这对我来说很烦人,因为我无法控制我的杀戮环(又名剪贴板)并且可能会导致意想不到的效果。

有没有办法delete-selection-mode不杀文字,直接删掉?也许修改源代码

(*:我已经同步了 kill-ring 和 Windows 剪贴板,所以对我来说(出于实际目的)它是一样的)


编辑[2009 年 6 月 24 日]

谢谢,丹尼尔波。即使有特雷杰克逊的想法,选择仍然是致命的。我找到了原因。

我发现问题不在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>"))

感谢您的建议。如果这种禁用此鼠标行为的方法会导致与其他选项发生冲突,请发表评论。

4

2 回答 2

0

您是否尝试emacs过从-Q. 如果我这样做并且只启用M-x: delete-selection-mode,我将无法重现您所描述的内容。什么都没有被杀死只被删除?!你能检查一下吗?

于 2009-06-24T09:23:53.300 回答
0

It looks as though you just need to modify a small part of the source, namely make this change:

(defun delete-active-region (&optional killp)
  (delete-region (point) (mark))
  t)

The original code looked at the argument killp and used that to decide whether to add the region to the kill-ring, and you said you don't ever want that. This change forces the region to always be deleted.

Now, you don't need to actually modify the source, just place that function definition after the (require 'delsel) in your .emacs (or after the (delete-selection-mode)).

于 2009-06-24T04:41:04.517 回答