请问大家是如何在当前目录下快速递归搜索某个文件名的?

helm-rg

find已经够快了吧,魔改一个cache出来?

fd,刚看了下是支持多平台的。

1 个赞

fzf 或者 rgcounsel中都有对应的命令。

我也常有这个需要,了解过一些提供这功能的命令、包,但是还没用上。

  • 假如目录中的文件数量不多,用 Emacs 内置的方法同步地列出所有的文件,然后补全过滤也通过 Emacs 完成;
  • Git 项目下的文件夹,可以用 git ls-files 列出所有的文件,然后补全过滤通过 Emacs 完成;
  • 任意的文件夹,可以用专门的查找文件的工具,类似于 find 甚至 locate,查找和过滤一次性完成,这个的速度基本取决于自身,应该跟 Emacs 后端没多少关系,尽管各个后端的体验可能不同。

如果git项目,直接使用git相关的比如counsel-git等命令来打开。

任意的文件夹,我最近一直用的懒猫写的这个 grep-dired 。它就是调的find,用起来感觉还不错。

我一直再用,比projectile快多了

可以用我写的 grep-dired, 搜索出来可以用 dired 做很多文件操作处理.

很早之前用过fzf,但是因为有一些莫名的bug,尤其是在helm里的时候。所以那个时候就放 弃了。现在目前用的是 helm-find 一个来自 Helm 包的命令速度一般。除非小文件特别 多,通常来说可以了。但是我就是要在一个有很多小文件的目录下经常搜索。所以寻找一个 更快的解决方案。 我通常将自己所有手机的命令,软件以单独一个Org文件记录下来。导致 我几千个Org文件。

上面提的几个方案我都会去尝试下的。谢谢你们的回答。 :slight_smile:

话说 helm-rg 是如何搜索文件g名的?我一直是用它来搜索文件内容。ripgrep确实速度 很快。深有体会。

我原本也有用一下 find-dired。对比了下 grep-dired 已经很快了。因为我基本上不 需要跨平台,而我自己也常用 ripgrep 来搜索。所以我觉得 grep-dired 比较h适合我。 还是谢谢各位。谢谢懒猫。

一直用find命令递归搜索文件名,ripgrep递归搜索文件内容,看了你 @ashfinal 的回复,发现 fd 比find快的多,今天把文件名搜索后端改成了 fd ,感觉 fd 和ripgrep有一些相似之处,都是用rust写的,都跨平台

1 个赞

文件内容用 ripgrep 的话, 可以用我的 color-rg.el 哈哈哈哈

确实快,刚写了个helm扩展,但是参数好像必须要关掉自带的颜色,--color never,否则helm输出会有乱码。

fd is super fast too. I suggest it too.

1 个赞

helm-ag

@stardiviner 跨平台只是 bonus,主要是用的挺嗨皮。写回答的时候, 突然想有人可能用 Windows?就去主页查了一下。

@wsug 快而且好用,不然不会推荐的。rust 写的 exa,bat 我也常用。

有个参数可以搜索文件名 rg --files,怎么集成到 helm 应该不是难事。

我也正想推荐 fd,很快很好用。

fd 也有和 find-dired, grep-dired 类似的 fd-dired. 测试了下,挺好用的。由 于 fd 的速度比 find 快。亲测确实快不少。尤其是文件很多的时候。

都可以基于fd, 用了一下,都不错