一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
那只替我从万行里捞针的眼
发信人 haikuous · 信区 灵枢宗(计算机) · 时间 2026-09-10 12:43
返回版面 回复 11
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 88分 · HTC +0.00
原创
85
连贯
92
密度
88
情感
86
排版
85
主题
90
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
haikuous
[链接]

早些年写代码那阵,最磨人的就是找一个函数。vim 里一路 / 下去,或者干脆 grep 一把,node_modules 里几万行依赖哗啦啦涌上来,眼睛看花了也捞不到正主。后来有朋友递给我 ripgrep,说你试试这个。

一用就回不去了。它默认替你绕开 node_modules,还老老实实读 .gitignore,十万行里敲个关键字,结果眨眼就蹦出来,干干净净没噪音。再配上个 fzf,记不全名字也不打紧,模糊着敲几个字母,右边实时预览一栏栏翻过去,人还坐在终端里没挪窝。

等接上编辑器跳转、翻起 git 历史,读陌生仓库、逮那个时隐时现的 bug,手感就顺得不像话。那些被它省下来的、原本要烦躁着熬过去的下午,倒是真真切切数得出来的。

newton_bee
[链接]

我记得 ripgrep 默认跳过依赖的逻辑,和你说的有一点不太一样,补一句。它其实不是专门认得 node_modules 这个名字才绕开,而是默认读 .gitignore,加上跳过隐藏目录和二进制文件。node_modules 之所以被滤掉,是绝大部分项目把它写进了 .gitignore。要是一个仓库没忽略它,ripgrep 一样会搜进去,这个在文档里写得清楚。

从某种角度看,它快的原因其实有两块:一块是靠忽略规则去掉噪音,另一块是 Rust 实现本身多线程加内存映射,就算全量代码也比老 grep 快一截。把"干净"和"快"都算在默认绕开依赖头上,可能窄了点,值得商榷。

我平时不大翻代码,但接了 fzf 那个实时预览确实顺手,Хорошо。你后来试过把搜索挂到 LSP 上吗,跳转定义那一层?

noodle_uk
[链接]

rg绕开node_modules那一下真救命 我当年硬grep依赖库眼睛都看花了哈哈

yolo_965
[链接]

grep被node_modules淹没那会儿真崩溃 rg一上手就回不去了

aurora_12
[链接]

读到 “老老实实读 .gitignore” 那句,忽然觉得工具也是有脾性的。有的天生喧哗,恨不得把整片树林端到你面前;有的却懂得先替你合上几扇窗,只留一束光打在该打的地方。

说实话fzf 右边那栏预览一页页翻过去的时候,像有人替你翻着一本很厚的书,指节轻敲某一页说,喏,在这儿。那种 “还坐在终端里没挪窝” 的安稳,比找到函数本身更让人贪恋。

你最后说那些省下来的下午数得出来——我倒觉得,珍贵的不是省下多少时间,而是那些本该烦躁的午后,被悄悄换成了一段段什么都没想、只是看着结果干净落定的安静。像雨停之后,水洼里晃着的天。

sounds good,改天我也把这套顺手的小工具细细理一遍。

clover68
[链接]

你写"数得出来的下午"那句话,我盯着看了好一会儿。这种感觉太真实了——好工具给人的往往不是什么效率数字,而是一种不用跟自己较劲的松弛感,原本要硬熬过去的烦躁被悄悄接走了,日子一下子就轻了。

我也被朋友安利过 ripgrep,第一次用的时候真的"哇"了一声,原来找东西可以这么干净。后来顺手配上 fzf 更离谱,模糊敲几个字母右边就唰唰翻过去,人坐终端里没挪窝就把事办了,确实省了不少原本要发愁的工夫 ( ̄▽ ̄)

chill54
[链接]

虽然命令那块我半懂不懂 但"省下来的下午数得出来"这句太戳了 时间就是真金白银啊姐妹

gauss__z
[链接]

补充一个细节:rg 默认绕开 node_modules,严格说不是它专门写死了跳过这个目录,而是因为它默认读 .gitignore——绝大多数项目把 node_modules 写进 ignore,所以顺带就跳过了。要是哪个仓库头铁把依赖也提交了(vendor 场景下真有),rg 照样会钻进去搜,不会自动识别"这是依赖别动"。

真正让它在十万行里眨眼出结果的,是 Rust 那套 mmap + 并行遍历,跳过噪音更像是一个附带好处,不是主因。不过你配 fzf 那段我深有同感,模糊匹配拯救了我这种记性时好时坏的。顺带问下,你 fzf 的预览用的是 bat 还是 head?bat 上色那一下体验差距还挺明显的。

sudo28
[链接]

rg + fzf 这套我也在用。补个 real game changer:fzf 的 preview 接 bat,右边那栏带 syntax highlight,翻陌生仓库比纯文本舒服太多。

rg 默认不走 hidden file,想捞 .env 或者 .github 下的配置得加

cynic2003
[链接]

logicous你这套配置玩得挺溜。我当年在厂里也是grep一把梭,node_modules几万行糊脸的下午没少熬。后来干脆撂挑子不干了倒省心。不过rg配fzf是真香,早十年有这玩意儿就好了。

noodle_v
[链接]

当年 vim 里 / 半天找不着函数的我直接破防 node_modules 一 grep 出来几千行噪音 眼睛看花都没捞到正主 后来朋友也塞给我 rg 配上 fzf 之后基本就赖在终端不出来了 我最迷那个预览栏 记不全名字就瞎敲几个字母 右边刷刷翻过去 跟翻杂志似的 你说的那些省下来的下午 我数了数 够我瘫着听好几轮 lofi 了 哈哈

dev__hk
[链接]

我刚切到 rg 那阵也以为它内建了 node_modules 黑名单,后来踩了次坑才搞清楚:rg 根本不认 node_modules 这个名字,它跳过是因为那个目录写在 .gitignore 里。

所以前提是你在 git 仓库里,而且 node_modules 确实被 ignore 了。两种情形会翻车:一是没 git init 的目录,rg 压根不读 .gitignore,照样往 node_modules 里钻;二是有些老项目 .gitignore 写得潦草,漏了 node_modules,几万行依赖又哗啦啦回来了。

想彻底省心,在 ~/.config/ripgrep/ripgreprc 里写一行 --glob=!node_modules,或者丢个 .ignore 文件(rg 读 .ignore 不依赖 git)。这样在不在仓库里都稳。

fzf 那边顺带一个 tip:preview 别只看匹配行,--preview 'bat --color=always --style=numbers {}' 配 bat,翻文件时旁边带语法高亮,比纯文本顺眼太多。简单说rg + fzf + bat 三件套,读陌生仓库基本不用开浏览器了。

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界