据说速度比ripgrep快. 实际使用体验如何?
在用(project-find-regexp),但只是偶尔用,主要是counsel-rg
用习惯了。
比rg更快!我这儿用project-find-regexp
和counsel-rg
在同一个项目里搜同样内容,能明显感觉出来速度差异。
不过没拿emacs -Q
对比测试,不确定我的配置会有多大影响。
好我试一下ugrep
counsel-rg
也许通过设置counsel-rg-base-command
可以改为用ugrep
一个小白问题,grep的替代品那么多,都比grep更快,更好用。为什么grep还有那么多人在用,还是系统默认值,有没有什么发行版是直接就把grep换掉的
以前好像试过,问题比较多,刚才试了下windows下gbk编码,中文肯定是搜索不出来的(rg也是),但英文直接提示Binary file xxxx.h matches
,懒得继续了。
改了一下试了试,像是counsel-rg
本身慢(或者我配置导致的问题),没有在project-find-regexp
里用ugrep那么快。
(setq counsel-rg-base-command '("ug" "--line-number" "%s"))
我又把project-find-regexp
改成用rg,跟用ugrep比较起来速度没有明显差异。
所以我觉得应该更正下我上个回复说的:确实够快,但是比ripgrep快多少不好说。
之前 reddit 上看有人讨论过 benchmark,没有复现比 ripgrep 快,当然影响 benchmark 的因素也比较多。不过感觉都很快了,速度应该没有太大的比较意义了
因为 shell 脚本里要用 grep 的本职功能:搜索 stdio 里的内容,这些 XXgrep 主要是对 grep 的扩展功能:搜索文件的功能做了 grep 本身没有的并行优化,反而不能实现 grep 的本职工作。
而 grep 在其本职工作上,已经用了已知最好的算法,stdio 的搜索也没法并行化,自然没有替代品,哪怕用 rust 重写也提升有限。
这些 XXgrep 其实替代的是 https://beyondgrep.com/
本身是个 Perl 写的,提供通过类似 grep 的参数搜索文件的一个工具。
都是号称快,实际使用下来差别不大。记得看过两篇文章(一时没找到出处,好像在reddit上),一篇是ugrep快,一篇是rg更快。实际下来还是rg更舒心,已经删除ugrep了。
补充下:ugrep和ripgrep的主页上就有benchmark,结论是相反的 让人不由得想起王婆卖瓜
目前是ugrep比rg快。rg就没更新过benchmark(
grep单文件并不慢的,但对一整个project很多文件一起搜就不行
实际使用没什么区别。。。
确实,大数据也就10来秒的差距,没什么关系