How can I disable emacs delete-selection-mode
Emacs 的 Delete-selection-mode 感觉很现代,很容易无意中删除代码。因此,我希望它默认禁用。因此,我添加了
1
| (delete-selection-mode f) |
到我的 init.el 文件,但没有效果。我的意思是,如果我突出显示一个区域并键入某些内容,则选择的内容将替换为新的键入内容。我还尝试使用 M-x delete-selection-mode 命令切换模式,但没有效果。我在 Windows7、Mac 和 Linux 上使用 Emacs 24.1.1。我错过了什么,我应该启用其他模式或变量吗?
- 如果您对 Emacs Lisp 不是很熟悉,请尝试使用 M-x customize 进行自定义。
-
我不认为 delete-selection-mode 默认启用,这意味着在您添加它的过程中的某个地方 - 例如,通过安装启用它的第三方库。一般来说,次要模式用一个正整数启用,用一个负整数禁用——例如,(name-of-minor-mode -1) 禁用,(name-of-minor-mode 1) 启用。在禁用它之前,您应该非常努力地找出它被启用的位置,然后删除或注释掉该行代码。
-
更新:事实证明,启用 CUA 模式会启用删除选择行为。我要进一步调查。
-
我需要添加 (cua-delete-selection nil)。感谢您的提示,法律列表。
-
发布答案作为答案,并接受它。这样,这个问题就不会出现在未回答的列表中。
-
Bats:请注意,虽然 t 是代表 true 的规范 lisp 符号,但并非 f 代表 false! nil 是唯一的假值,所有非零值(包括 f,如果它绑定到非零值)都被认为是真。
delete-selection-mode 在启用 CUA 模式时默认设置,但可以通过 M-x customize 禁用。 CUA 设置是顶级"编辑"组的"编辑基础"子组的子组。要禁用删除选择模式,请使用"Cua Delete Selection"项目的值菜单并将设置更改为禁用。这会将以下行放在 .emacs 或 init.el 文件中定义的自定义设置变量中:(cua-delete-selection nil)。设置后,使用 C-w 进行剪切或按删除键等操作将继续在区域上正常运行。
- 那对我不起作用。我的 .emacs 文件调用"(delete-selection-mode nil)"并设置"(cua-delete-selection nil)",但我有同样非常烦人的行为。 I dont mind it when the selection is visible, but I typically turn off transient-mode, and want backspace and ctrl-d to operate on one char (if no arg given) while leaving point, and all the other characters between point and mark ,原封不动。我试过(自定义),但它也没有工作。顺便说一句,这是在 OSX 上。