【问题标题】:How can I disable emacs delete-selection-mode如何禁用 emacs 删除选择模式
【发布时间】:2015-01-04 13:23:23
【问题描述】:

Emacs 的 Delete-selection-mode 感觉很现代,很容易无意中删除代码。因此,我希望它默认禁用。因此,我添加了

(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)。感谢您的提示,法律列表。
  • 蝙蝠:请注意,尽管t 是“真”的规范 lisp 符号,但 不是f 表示“假”的情况! nil 是唯一的“假”值,所有个非零值(包括f,如果它被绑定到一个非零值)被认为是“真”。

标签: emacs overwrite


【解决方案1】:

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 don't 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和标记,原封不动。我试过(自定义),但也没有用。顺便说一句,这是在 OSX 上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多