在我的.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
再次),然后它被启用并再次工作。直到下一次失败......
答案 0 :(得分:2)
在幕后,模式使用pre-command-hook
,它允许命令在每个命令之前运行。众所周知,Emacs会在发生错误时清除此变量(只是为了确保Emacs不会挂起)。这意味着delete-selection-mode
,或使用此挂钩的任何其他模式使用的函数都会触发错误。
如何解决?查找导致错误的原因,将函数包装在ignore-errors
块中,或运行定时器每十秒左右重新添加一次该函数。