【问题标题】:Edit buffer while keeping Helm results open在保持 Helm 结果打开的同时编辑缓冲区
【发布时间】:2015-03-27 10:07:26
【问题描述】:

是否可以在保持 Helm 缓冲区打开的同时从 Helm 的结果列表中访问缓冲区?或者有没有其他方法可以达到同样的效果?

我经常需要执行涉及搜索一些文件并访问每个文件的任务,但现在它的工作方式是每次访问完缓冲区后都必须重新搜索。

编辑:FWIW,如果使用 spacemacs,SPC r l 将绑定到 helm-resume

【问题讨论】:

  • 您所说的“实现相同效果的其他方式”是什么意思?效果如何?即,需求/请求是什么?它是 Helm 特有的吗?如果没有,是否可以简单地表述为“搜索一些文件,并编辑每个文件”而不退出搜索?
  • 我认为更准确的版本是“搜索一些文件,并在不退出搜索的情况下访问结果”
  • 我已编辑您的问题以反映该说明,将“编辑”替换为“访问”。对我来说,这更有意义。如果您编辑一个缓冲区,那么当您完成编辑时,您需要以某种方式恢复搜索(“重做搜索”)是有意义的。

标签: emacs emacs-helm


【解决方案1】:

您可以使用 helm-resume 命令恢复上一个 Helm 会话(默认绑定到 Ctrl-x c b )。这应该可以有效地实现您想要的。

您还可以使用 Ctrl-x Ctrl-s 将搜索结果保存到缓冲区。

【讨论】:

  • 命令的名称是什么?我有 C-c b 绑定到别的东西。
  • @altschuler:抱歉,组合键错误。现已修复并添加了相应的命令。
【解决方案2】:

Icicles 允许您执行此操作。使用Icicles search,您可以在搜索命中之间导航(跨搜索的缓冲区或文件集)。

您可以在搜索结果之间循环,但不需要循环。您可以按任何顺序访问您选择的任何热门歌曲。您可以通过键入过滤器模式来动态过滤命中,您可以随时更改它。

您可以组合多个这样的动态过滤器模式,使用几种简单的模式代替更复杂的模式。模式匹配可以使用apropos(正则表达式)匹配或几种fuzzy 匹配中的任何一种。您还可以按chipping away 动态匹配进行过滤,从当前更广泛的匹配中减去它们。

您甚至可以搜索,不是您在搜索开始时定义的搜索上下文,而是它们的complement。

(Icicles 搜索允许您定义contexts to search - 例如,仅函数定义或仅 cmets。忽略其他文本(不搜索)。最简单的示例是缓冲区的 lines搜索上下文。行搜索上下文是 grep、occur 和 icicle-occur 使用的。)

您还可以replace 单个搜索命中,或匹配您当前输入模式的部分,按需,而无需退出 Icicles 搜索。您可以在搜索期间随时根据需要更改替换文本。

在这种替换的有限意义上,您不仅可以访问搜索到的缓冲区,还可以编辑它们,而无需退出搜索。

【讨论】:

  • 我的第一个想法是“为什么有一个与 Icicles 无关的答案?”。但是,嘿,听起来不错!
【解决方案3】:

helm-follow-mode 将在 helm 结果列表上下移动光标点时显示 helm 列表的结果。

例如在 Spacemacs 中,SPC T s 会打开带有主题列表的 helm,C-c C-f 激活 helm-follow-mode,现在在列表中上下导航时会应用主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    相关资源
    最近更新 更多