大家好,
我信任的老 Carbon Emacs 养成了一个令人沮丧的习惯:当我使用 Cs 时,minibuffer 会提示输入搜索字符串,但它并不集中。显然,输入一个字符串不会做任何事情。我不知道当时哪个缓冲区有焦点。
当我按 Cg 时,搜索会照常取消。当我按下 Return 键时,I-search 提示变成了 Search 提示,并且 minibuffer 重新获得焦点。更新--- 当我键入 Cw 时,当前单词像往常一样设置为搜索字符串,随后的 Cs 按预期推进搜索。
AFAIK,我没有更改 .emacs 文件中的任何内容,也没有自定义任何内容。emacs 的版本是一样的,操作系统也是一样的。此行为在 emacs 重新启动后仍然存在。甚至 emacs -q 也不能解决它。
更新——事实证明“焦点”不是正确的词;使用 i-search,焦点停留在您正在搜索的缓冲区上,但迷你缓冲区会回显搜索词。嗯,它应该,但它没有。所以,下面的代码片段看错了方向。
我试过这个片段来重新关注小缓冲区:
(defun minibuffer-refocus ()
"Refocus the minibuffer if it is waiting for input."
(interactive)
(when (active-minibuffer-window)
(message "")
(select-window (minibuffer-window))))
(global-set-key (kbd "C-M-g") 'minibuffer-refocus)
但无济于事。在其他情况下,它就像一种魅力,但不适用于增量搜索……更新——这是意料之中的。
有没有人知道发生了什么,或者有提示可以追捕它?这真的很烦人……
细节
- leopard.local 上 2008 年 11 月 1 日的 GNU Emacs 22.3.1(i386-apple-darwin9.5.0,Carbon 版本 1.6.0)
- OSX 10.6.7
- cs 运行命令 isearch-forward
更新
好消息是解决了。坏消息是我不知道怎么做:-(
更新
坏消息是它又回来了。我也意识到上面的代码片段确实有帮助,因为迷你缓冲区并没有真正获得焦点。