我目前Emacs上用的是 helm-find
但是这个包感觉速度不够快。想找找更快的方法。尤其是小文件非常多的时候。
helm天生比ivy慢。
不行就用coreutils的find吧
它就是调用的 find
命令。
那可以考虑用locate
当前目录下搜索某个文件名的话 ivy 有个叫作 counsel-fzf 的函数,你可以看看 helm 有没有类似的函数,他调用的是 fzf,我觉得速度挺快的,你可以试试。
用c写个命令
helm-rg
find已经够快了吧,魔改一个cache出来?
fzf
或者 rg
,counsel
中都有对应的命令。
我也常有这个需要,了解过一些提供这功能的命令、包,但是还没用上。
- 假如目录中的文件数量不多,用 Emacs 内置的方法同步地列出所有的文件,然后补全过滤也通过 Emacs 完成;
- Git 项目下的文件夹,可以用
git ls-files
列出所有的文件,然后补全过滤通过 Emacs 完成; - 任意的文件夹,可以用专门的查找文件的工具,类似于
find
甚至locate
,查找和过滤一次性完成,这个的速度基本取决于自身,应该跟 Emacs 后端没多少关系,尽管各个后端的体验可能不同。
我一直再用,比projectile快多了
可以用我写的 grep-dired, 搜索出来可以用 dired 做很多文件操作处理.
很早之前用过fzf,但是因为有一些莫名的bug,尤其是在helm里的时候。所以那个时候就放
弃了。现在目前用的是 helm-find
一个来自 Helm 包的命令速度一般。除非小文件特别
多,通常来说可以了。但是我就是要在一个有很多小文件的目录下经常搜索。所以寻找一个
更快的解决方案。 我通常将自己所有手机的命令,软件以单独一个Org文件记录下来。导致
我几千个Org文件。
上面提的几个方案我都会去尝试下的。谢谢你们的回答。
话说 helm-rg
是如何搜索文件g名的?我一直是用它来搜索文件内容。ripgrep确实速度
很快。深有体会。
我原本也有用一下 find-dired
。对比了下 grep-dired
已经很快了。因为我基本上不
需要跨平台,而我自己也常用 ripgrep
来搜索。所以我觉得 grep-dired
比较h适合我。
还是谢谢各位。谢谢懒猫。
一直用find命令递归搜索文件名,ripgrep递归搜索文件内容,看了你 @ashfinal 的回复,发现 fd 比find快的多,今天把文件名搜索后端改成了 fd ,感觉 fd 和ripgrep有一些相似之处,都是用rust写的,都跨平台
文件内容用 ripgrep 的话, 可以用我的 color-rg.el 哈哈哈哈
确实快,刚写了个helm扩展,但是参数好像必须要关掉自带的颜色,--color never
,否则helm输出会有乱码。
fd
is super fast too. I suggest it too.