基于 ripgrep 的代码搜索和重构工具

从替换角度都能做,只是emacs的正则确实不一样,我估计你要适应一下,如果做正则对接,我不知道有没有这样的库。

我在使用 color-rg 进行查找修改的操作时发现两个不符合预期的行为:

  1. 如果设置选项 kill-whole-line 为 t ,则应用修改后会删除断行(\n),导致上下两行连在一起
  2. 如果删除在 org-mode 的 head line 里面,会把整个 head 及其下面的内容一起删掉

好像跟 color-rg-apply-changed 用 kill-line 来实现应用改动有关。 提了 issue ,可以看看吗?

第一个问题我推送了补丁 Make sure 'kill-whole-line' is nil when kill line in color-rg. · manateelazycat/color-rg@1bb68a2 · GitHub

第二个问题欢迎提交补丁, 我很少用 org-mode, 不太想研究 org-mode 的问题。

filter results 和 color-rg-customized-search 这两个功能都太赞了. 我今晚上一直在找办法怎么 rg 自定义 file list, 并且还可以 filter. 一个小时后总算想到这个, 果然可以.

1 个赞

我用 emacs -Q 也复现了同样的问题, color-rg 的版本是 0714, 应该是最新的, emacs 版本是 29.1.90.

是我的姿势不对还是 emacs 不够新?

github提bug吧,最近比较忙

我早上试了一下, 是可以的, 请用 emacs -Q 排除一下你自己的配置影响。

我用 emacs -Q 也复现了同样的问题, color-rg 的版本是 0714, 应该是最新的, emacs 版本是 29.1.90.

是我的姿势不对还是 emacs 不够新?

我早上试了,自定义搜索后可以过滤和跳转。

你详细说一下你的操作步骤吧。

1 个赞

我在一个目录下, 执行 M-x color-rg-customized-search, 然后输入 rg '\bEVA\b', 就会得到上面回复的图, 0 matches, 以及无法跳转和过滤. 是不是 color-rg-customized-search 只应当使用在 re-search 的情况 (也就是已经用其它 color-rg 命令搜索过再使用)?

对, color-rg-customized-search 的设计为搜索后再自定义搜索用 color-rg-customized-search, 不是一开始就用 color-rg-customized-search

如果你要自定义关键字, 完全可以用 color-rg-search-input 命令手动输入关键字。

color-rg 默认的关键字有 rg --no-config --column --color=always -H --heading --max-columns 3000 --no-ignore -g '!node_modules' -g '!dist' -g '!TAGS' -g '!tags' -g '!*~' -U --smart-case -e keyword search-directory

如果默认都不传入这些关键字, 就无法显示列和关键字高亮,而且会搜索出很多无关的目录内容。

给 color-rg 加了一个好用的命令: color-rg-recursively

先用 rg 搜索一个关键字, 再在搜索结果中调用 color-rg-recursively 命令继续搜索新的关键字, 可以一直递归下去, 快速找到一些特定的函数。

6 个赞

猫大昨天更新了一堆插件啊! 我这每天早上会更新你写的常用仓库。

哈哈哈哈,昨天在玩aider,它顺手就帮我修复了很多bug,感谢捧场。

1 个赞

aider 这么好用吗…看来要把它引入到我的配置里了


好吧看了下 aider 的消息流水,看起来还是需要一个好的模型才能好用。