emacs delete-selection-mode禁用自身

时间:2013-02-19 09:49:56

标签: emacs dot-emacs emacs24

在我的.emacs文件中,我(delete-selection-mode t)全局启用delete-selection-mode。目前我正在使用AUXTeX处理TeX文件,因此它可能与AUCTeX有关,但我不知道。

首先,在访问文件foo.tex之后,一切正常,键入标记的文本会将标记的文本替换为我键入的文本。但是,经过一段时间,我编译文档,添加TeX宏等等,delete-selection-mode的功能不再起作用。

我不知道我的哪个行为会导致问题 - 很难追查它。

请注意,尽管delete-selection-mode的功能失败,但当我尝试启用它时(M-x delete-selection-mode),我收到一条消息,指示该模式已已禁用!那是它之前没有被禁用 - 它只是没有用...我然后再启用它(M-x delete-selection-mode再次),然后它被启用并再次工作。直到下一次失败......

1 个答案:

答案 0 :(得分:2)

在幕后,模式使用pre-command-hook,它允许命令在每个命令之前运行。众所周知,Emacs会在发生错误时清除此变量(只是为了确保Emacs不会挂起)。这意味着delete-selection-mode或使用此挂钩的任何其他模式使用的函数都会触发错误。

如何解决?查找导致错误的原因,将函数包装在ignore-errors块中,或运行定时器每十秒左右重新添加一次该函数。