【问题标题】:Carbon Emacs: no `focus' in minibuffer on incremental searchCarbon Emacs:在增量搜索的小缓冲区中没有“焦点”
【发布时间】:2013-10-05 04:42:12
【问题描述】:

大家好,

我信任的老 Carbon Emacs 养成了一个令人沮丧的习惯:当我使用 C-s 时,minibuffer 会提示输入搜索字符串,但它并不集中。显然,输入字符串不会做任何事情。我不知道当时哪个缓冲区有焦点。

当我按 C-g 时,搜索会照常取消。当我按下 Return 键时,I-search 提示变成了 Search 提示,并且 minibuffer 重新获得焦点。 更新 --- 当我输入 C-w 时,当前单词像往常一样被设置为搜索字符串,随后的 C-s 按预期推进搜索。

AFAIK,我没有更改 .emacs 文件中的任何内容,也没有自定义任何内容。 emacs 的版本是一样的,操作系统也是一样的。此行为在 emacs 重新启动后仍然存在。连 emacs -q 都解决不了。

更新 -- 事实证明 `focus' 不是正确的词;使用 i-search,焦点停留在您正在搜索的缓冲区上,但迷你缓冲区会回显搜索词。嗯,它应该,但它没有。所以,下面的 sn-p 看错了方向。

我已经尝试过这个 sn-p 来重新获得对 minibuffer 的关注:

(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 月 1 日 leopard.local 上的 GNU Emacs 22.3.1(i386-apple-darwin9.5.0,Carbon 版本 1.6.0)
  • OSX 10.6.7
  • C-s 运行命令 isearch-forward

更新

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

更新

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

【问题讨论】:

  • Messages 缓冲区有什么线索吗?
  • @vpit3833 不幸的是,'messages' 中没有一个窥视。
  • 也许您无意中进入了递归编辑?
  • @vpit3833 不。它从一开始就是正确的。和其他东西(如替换)一样工作。叹。仍然没有解决这个问题......考虑切换到普通的 emacs(可可构建)或 Aquamcs。切换的愚蠢理由:-(
  • 如果您仍在使用 Emacs 22,仅此一项就是切换到至少 23(如果不是 24)的充分理由。emacsformacosx.com 是 OSX 用户的首选站点。跨度>

标签: macos ubuntu emacs carbon-emacs


【解决方案1】:

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

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

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

  • 法语映射工作正常,

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

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

好消息是:US not-extended 似乎工作正常! Maybe (maybe) C-s 是美国 OS X 上的一些前缀,用于某些多键字符的扩展映射,并且 OS X 之间开始了一些非常糟糕的交互,也许期待下一个字符部分多键序列,以及从中窃取它们的 Emacs。胡思乱想。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      (defun isearch (arg)
        (interactive "MI-search: ")
        (select-window (minibuffer-window))
        (isearch-forward))
      
      (global-set-key "\C-s" 'isearch)
      

      我在 Ubuntu 上使用 GNU Emacs。

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2012-06-26
          • 1970-01-01
          • 2011-09-21
          • 2017-07-28
          • 2011-04-17
          • 1970-01-01
          • 1970-01-01
          • 2010-10-28
          相关资源
          最近更新 更多