在保持Helm结果打开的情况下编辑缓冲区

14

能否在保持Helm buffer打开的情况下,访问来自Helm结果列表的缓冲区?或者有其他实现相同效果的方法吗?

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

编辑:值得一提的是,如果使用spacemacs,SPC r l绑定到helm-resume


some other way of achieving the same effect”是什么意思?这个效果是什么?也就是说,需要或请求是什么?这与Helm有关吗?如果不是,能否简单地陈述为“在搜索时查找一些文件并编辑它们”,而无需退出搜索? - Drew
我认为更准确的版本应该是“搜索一些文件,并在不退出搜索的情况下访问结果”。 - altschuler
我已经编辑了你的问题以反映那个澄清,用“visit”代替了“edit”。对我来说更有意义。如果你编辑一个缓冲区,那么当你完成编辑后,需要重新开始搜索(“redo the search”)是有意义的。 - Drew
3个回答

14
您可以使用helm-resume命令(默认绑定为Ctrl-x c b)恢复最后的Helm会话。这应该可以有效地实现您想要的功能。
您还可以使用Ctrl-x Ctrl-s将搜索结果保存到缓冲区中。

命令的名称是什么?我已经将C-c b绑定到其他功能了。 - altschuler
@altschuler:抱歉,之前的键盘组合是错误的。现在已经修复并添加了相应的命令。 - Pedro Romano

2

Icicles让您可以做到这一点。通过Icicles搜索,您可以在搜索的缓冲区或文件集合中浏览搜索结果。

您可以在搜索结果之间循环,但您不需要循环。您可以按任意顺序选择访问任何搜索结果。 您可以通过输入筛选模式来动态过滤结果,您可以随时更改筛选模式。

您可以使用几个简单模式代替更复杂的模式,将多个这样的动态筛选模式组合在一起。模式匹配可以使用apropos(正则表达式)匹配或几种模糊匹配的类型之一。 您还可以通过消除动态匹配来过滤结果,将它们从当前更广泛的匹配集合中减去。

您甚至可以搜索不是在搜索时定义的搜索上下文,而是它们的补集

(Icicles搜索允许您定义要搜索的上下文 - 例如仅函数定义或仅注释。其他文本将被忽略(未搜索)。缓冲区中每行是一个最简单的示例作为搜索上下文。行搜索上下文是grep、occur和icicle-occur使用的内容)

您还可以替换搜索结果中的单个匹配项,或者与当前输入模式匹配的它们的部分,按需进行操作,而无需退出Icicles搜索。并且您可以随时按需更改替换文本。

在这种有限意义下的替换,因此您不仅可以访问搜索过的缓冲区,还可以在不离开搜索的情况下对其进行编辑


1
我的第一反应是“为什么会有一个关于冰柱的无关答案呢?”但是嘿,这听起来还不错! - ntc2

1

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

例如,在 Spacemacs 中,SPC T s 打开一个主题列表的 helm,C-c C-f 激活 helm-follow-mode,现在在列表上下移动时应用主题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接