【问题标题】:Finding file by fuzzy searching name and content with fzf使用 fzf 模糊搜索名称和内容来查找文件
【发布时间】:2020-04-01 17:47:05
【问题描述】:

问题

我需要模糊搜索一个文本文件目录,其中也搜索文件的内容。我目前正在使用 ripgrep 和 fzf 来执行此操作,问题是每个文件的每一行都成为搜索项,我需要每个项目包含其文件的所有行。

示例:

我们有以下两个文件:

example.md

某事某某某事

某事某某某事

某事某某某事

某事某某某事

有用的例子.md

某事某某某事

我们在包含它们的目录中运行rg . | fzf,写入foo,得到如下结果:

useful-example.md:something something foo something

example.md:something something foo something

example.md:something something foo something

example.md:something something foo something

example.md:something something foo something

这里的问题是example.md的每一行都是一个项目,它应该是一个包含每个文件的项目。它应该看起来像这样:

useful-example.md:something something foo something

example.md:something something foo something

.............某事 foo 某事

.............某事 foo 某事

.............某事 foo 某事

问题

我该怎么做呢?有人做过我想念的这个吗?

【问题讨论】:

    标签: fuzzy-search fzf


    【解决方案1】:

    Ripgrep 带有一个 --heading 标志(来自手册页)

    在每个文件的匹配簇上方打印文件路径 而不是打印文件路径作为每个匹配行的前缀

    看起来像这样:

    rg --heading --line-number --column . | fzf --layout=reverse
    
    useful-example.txt
    1:1:something something foo something
    
    example.txt
    1:1:something something foo something
    2:1:something something foo something
    3:1:something something foo something
    4:1:something something foo something
    

    如果您只对匹配的文件感兴趣,请添加标志--files-with-matches

    rg --files-with-matches . | fzf
    useful-example.txt
    example.txt
    

    【讨论】:

      猜你喜欢
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      相关资源
      最近更新 更多