【问题标题】:Implementing incremental search in emacs在 emacs 中实现增量搜索
【发布时间】:2014-02-22 11:46:38
【问题描述】:

我想改进 emacs-eclim 并在当前编辑的项目中通过 java 类型添加增量搜索(Eclipse 中的 Shift-Ctrl-H)。

我可以调用 eclim-java-find 变体在 *eclim: find buffer 中获取结果。

但是我的问题来了:

如何实现一种行为,让用户输入一个 minibuffer(带有提示)并在每次 minibuffer 更改(新/删除字符)时调用一些其他函数,并将当前 minibuffer 内容作为参数或其他方式访问当前搜索字符串。

【问题讨论】:

  • 我不了解 emacs-eclim,但您是在谈论字符串的制表符补全吗?如果您可以访问或可以生成您想要查找的可能 Java 类型的字符串,您可以使用像 completing-read 这样的函数。这允许您在给定目标字符串列表的情况下以交互方式缩小 minibuffer 中的选择范围。

标签: search emacs elisp


【解决方案1】:

例如,您可以向post-command-hook 添加一个函数。在每个命令之后调用它(键入一个字符也是一个命令:self-insert-command)。然后,您的函数可以使用函数 minibuffer-contents 检查 minibuffer 的内容。

当您的搜索命令完成时,不要忘记从post-command-hook 中删除您的函数。您可以使用minibuffer-setup-hookminibuffer-exit-hook 来控制附加您的功能。

不要忘记在搜索命令完成时从minibuffer-setup-hook/minibuffer-exit-hook 中删除您的附加功能。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2012-06-26
    • 2014-10-27
    • 2023-03-09
    相关资源
    最近更新 更多