Carbon Emacs:在增量搜索中没有“关注”迷你缓冲区

时间:2011-04-13 11:40:24

标签: macos ubuntu emacs carbon-emacs

美好的一天,

我信赖的老碳Emacs已经形成了令人沮丧的习惯:当我使用C-s时,迷你缓冲区会提示搜索字符串,但它并没有集中注意力。显然,输入字符串不会做任何事情。我不清楚当时哪个缓冲区有焦点。

当我按下C-g时,搜索将照常取消。当我按Return键时,I-search提示变为搜索提示,迷你缓冲区重新获得焦点。 更新 ---当我输入C-w时,像往常一样将当前单词设置为搜索字符串,随后的C-s按预期进行搜索。

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)

但无济于事。它在其他情况下就像魅力一样,但不适用于增量搜索... 更新 - 这是预期的。

有没有人知道发生了什么事,或者是否有寻找它的提示?这真烦人......

详情

  • 2008-11-01的GNU Emacs 22.3.1(i386-apple-darwin9.5.0,Carbon Version 1.6.0)on leopard.local
  • OSX 10.6.7
  • C-s运行命令isearch-forward

更新

好消息是,这是解决了。坏消息是我不知道如何: - (

更新

坏消息是它又回来了。我也意识到上面的片段确实有帮助,因为迷你缓冲区并没有真正得到关注。

4 个答案:

答案 0 :(得分:1)

请注意,当您运行C-s时,M-e提供了一种编辑搜索模式的方法,但它比C-s按预期工作效率低得多......

我面对完全相同的问题(在两台不同的Lion机器上),我不明白出了什么问题,但我可以告诉你:

  • 我使用了几种“输入法”,即几种键盘映射:法语和美国扩展。我选择了OS X选项,允许键盘映射依赖于当前应用程序(例如,我通常使用US代表Emacs,而法语代表邮件代码)。

  • 法语映射正常,

  • US扩展映射失败,如您所述,

  • 在同一个Emacs会话中,从一开始到另一个会话保留不变量:法语有效,美国扩展被破坏,

好消息是:美国未扩展似乎正常运作!也许(也许)Cs是OS X上的一些前缀,在美国扩展映射中用于某些多键字符,并且在OS X之间启动了一些非常糟糕的交互,可能期望下一个字符部分的多键序列,以及从中窃取它们的Emacs。疯狂猜测。

答案 1 :(得分:0)

好消息是它按预期再次运作。坏消息是我不知道是什么修复了它。

我认为@ vpit3833指向正确的方向,带有递归编辑建议;我正在回答关于Alt和Esc键的另一个问题,在尝试了一些事情之后,比如做ESC-x和类似的组合,增量搜索再次开始工作。

抱歉,我没有真正的答案,但至少我可以关闭这个话题。

答案 2 :(得分:0)

这是适合我的解决方案。我发布它是因为我搜索解决方案而无法找到它。

(defun isearch (arg)
  (interactive "MI-search: ")
  (select-window (minibuffer-window))
  (isearch-forward))

(global-set-key "\C-s" 'isearch)

我在Ubuntu上使用GNU Emacs。

编辑,但如果您使用它,您将无法搜索迷你广告。由于此功能,您在搜索时无法专注于迷你卡。例如,您可以执行类似M-x C-s的操作来搜索函数名称。如果你专注于迷你小游戏,你就不能这样做。

答案 3 :(得分:0)

我遇到了完全相同的问题,非常明显,并且发现(正如有人已经指出的那样)它与OS X自己的键盘/输入方法有关。我一直在使用普通的美式键盘,但后来改为Unicode键盘,这就是问题出现的时候。一旦我回到普通的美国键盘,i-search按预期工作。我在美国扩展键盘上遇到了同样的异常行为。