问题描述
||
大家好
我可信赖的老牌Carbon Emacs养成了一个令人沮丧的习惯:当我使用C-s时,minibuffer会提示您输入搜索字符串,但它并不集中。显然,输入字符串不会执行任何操作。我不知道当时哪个缓冲区是重点。
当我按C-g时,搜索照常被取消。当我按Return键时,I-搜索提示将变成搜索提示,并且微型缓冲区重新获得焦点。更新---当我键入C-w时,照常将当前单词设置为搜索字符串,随后的C-s将按预期进行搜索。
AFAIK,我没有更改.emacs文件中的任何内容,也没有自定义任何内容。 emacs的版本相同,操作系统也相同。此行为也可以在emacs重新启动后幸存。甚至emacs -q也无法解决。
更新-原来'focus \'不是正确的词;使用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
C-s运行命令isearch-forward
更新资料
好消息是解决了。坏消息是我不知道:-(
更新资料
坏消息是它又回来了。我还意识到上面的代码片段确实有帮助,因为迷你缓冲区并没有真正引起关注。
解决方法
请注意,当您运行C-s时,M-e提供了一种编辑搜索模式的方法,但是它比使C-s正常工作效率低得多。
我遇到了完全相同的问题(在两台不同的Lion机器上),我不知道出了什么问题,但是我可以告诉你:
我使用了几种“输入法”,即几种键盘映射:法语和美国扩展。我选择了OS X选项,该选项允许具有依赖于当前应用程序的键盘映射(例如,我通常将US用作Emacs,将French用作邮件)。
法语映射工作正常,
您描述的美国扩展映射失败,
在同一个Emacs会话中,从头到尾都保持不变:法国作品,US Extended被打破,
好消息是:未扩展的美国似乎正常工作!也许(也许)Cs是OS X在美国扩展映射中某些多键字符的前缀,并且在OS X之间开始了一些非常糟糕的交互,也许期望多键序列的下一个字符部分与Emacs从那里偷走他们。胡乱猜测。
,好消息是它再次按预期工作。坏消息是我不知道该怎么解决。
我确实认为@ vpit3833通过递归编辑建议指向了正确的方向。我在回答有关Alt和Esc键的另一个问题,并尝试了一些操作(如执行
ESC-x
和类似的组合键)后,增量搜索再次开始工作。
抱歉,我没有真正的答案,但至少我可以关闭此主题。
,这是对我有用的解决方案。我发布它是因为我正在寻找解决方案,但找不到它。
(defun isearch (arg)
(interactive \"MI-search: \")
(select-window (minibuffer-window))
(isearch-forward))
(global-set-key \"\\C-s\" \'isearch)
我在Ubuntu上使用GNU Emacs。
编辑:但是,如果您使用它,将无法搜索minibufer。由于此功能,您在搜索时不会专注于小型缓冲器。例如,您可以执行M-x C-s之类的功能来搜索函数名称。而且,如果您专注于微型缓冲器,那么您将无法做到这一点。
,我突然遇到了完全相同的问题,并且突然发现,这与OS X自己的键盘/输入方法有关(正如已经指出的那样)。我以前使用的是普通的美国键盘,但是后来出现了问题,因此改成了Unicode键盘。回到常规的美国键盘后,i-search即可正常工作。使用美国扩展键盘,我也有同样的异常行为。