1

大家好,

我信任的老 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

更新

好消息是解决了。坏消息是我不知道怎么做:-(

更新

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

4

4 回答 4

1

请注意,当您运行 Cs 时,Me 提供了一种编辑搜索模式的方法,但它的效率远低于让 Cs 按预期工作...

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

  • 我使用了几种“输入法”,即几种键盘映射:法语和美国扩展。我选择了 OS X 选项,该选项允许根据当前应用程序进行键盘映射(例如,我通常将美国用于 Emacs,将法语用于邮件)。

  • 法国地图工作正常,

  • 正如您所描述的,美国扩展映射失败,

  • 在同一个 Emacs 会话中,从一个到另一个保持不变:法语工作,美国扩展被破坏,

好消息是:US not-extended 似乎工作正常!也许(也许)Cs是美国OS X上的一些前缀,用于一些多键字符的扩展映射,并且OS X之间开始了一些非常糟糕的交互,也许期待多键序列的下一个字符部分,和Emacs从它那里偷走它们。胡乱猜测。

于 2012-05-16T08:43:30.953 回答
0

这是对我有用的解决方案。我发布它是因为我搜索解决方案但找不到它。

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

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

我在 Ubuntu 上使用 GNU Emacs。

编辑:但如果你使用它,你将无法搜索 minibufer。由于此功能,您在搜索时无需关注 minibufer。例如,您可以执行 Mx Cs 之类的操作来搜索函数名称。如果你专注于 minibufer,你就无法做到这一点。

于 2012-01-10T16:36:10.213 回答
0

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

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

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

于 2011-04-15T14:36:07.840 回答
0

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

于 2013-10-04T20:42:12.173 回答