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


#44
  1. color-rg.el 是我在旅游的一天早上写的,主要的目的是集成 ripgrep 的速度和color-moccur.el 的功能(能够递归搜索,同时能够自由编辑搜索结果进行快速重构)
  2. color-rg.el 的初始目的就是递归搜索关键字,过滤不要的文件,快速针对需要的文件进行重构

上面这是我写color-rg.el的初衷,针对搜索重构这件事情提供一个开箱即用,易于使用的工具。

我尊重你自己的选择,但是从和你沟通的很多次来看,我看不明白你到底需要拿 color-rg.el 去做什么,你只说你需要多种关键字搜索,多个目录搜索,你需要我加很多hook,但是我最后不知道你这么多需求的目的,所以我没法在不知道你要干什么的时候,去增加这些东西,因为在没有目标的情况下,盲目加代码,最后代码臃肿不说,bug太多,所有人都不会用的,包括我,希望你明白想清楚比功能更重要好。

同时,我觉得你应该提高沟通和报issue的方法,和别人沟通问题,先清楚表达自己想要什么,而不是一句一句别人去问你。报issue需要提供问题描述和最小的重现环境,而不仅仅只是一个评论的地方。

我现在明白你要的是一个交叉搜索分析源代码的工具,我只能说这不是 color-rg.el 这个项目的初衷,那样改,不但最后改的color-rg.el核心功能没法用,最后也很难让你满意。我建议你根据你自己的需求去写你自己的插件,这是我的建议,也欢迎使用 color-rg.el 的任何代码,只要符合GPL3协议即可。

最后,请不要达不到你的需求后说 “鉴于你对数据库的态度” 这种话,我没有义务给任何人开发功能。 开源社区一向都是互惠互助,如果达不到自己想要的,就自己上。


#45

每个搜索结果使用独立的buffer是不是就可以了?


#46

代码臃肿不至于 还没有100k

我报issue是想让作者去更新代码 让更多人用

我可以自己改 不需要issue


#47

你试过了吗?


#48

我做插件就是给自己用,而不是更多人用。 别人喜欢我的插件就用,不喜欢我也不会去追求。

你自己fork吧,你的需求我满足不了。


#49

我不用这个插件,没有试过,我用的同类插件,有此功能,感觉可能满足你的需求。我不知道此插件是否支持,支持的话,你可以试用一下,不支持的话就需要定制或者向作者提需求。


#50

那就是pr?


#51

什么 名字?


#52

#53

我选rg.el吧


#54

我是把ag.el调用的命令及参数改造成了rg


#55

今天增加了两个新命令:https://github.com/manateelazycat/color-rg/commit/4b3ad5eabb600d69836adb664a8131e4947cfc63

  • color-rg-search-symbol-in-current-file
  • color-rg-search-input-in-current-file

color-rg 以前主要针对当前的目录,或者Git项目进行递归搜索,但是有时候只想搜索和重构当前文件的内容,上面的两条命令就是把搜索和重构功能限定在当前聚焦的文件范围。


#56

赞!大文件搜索比swiper快多了!:smile:


#57

是的,聚焦单文件以后,ripgrep 的速度秒杀 swiper/moccur这种。


#58

swiper属于增长型搜索吧


#59

其实你用多了,发现增长性搜索只是看着很酷,更像探索性的操作。

但是平常编程一般都是自己的代码,搜索和重构之前想输入啥都清清楚楚,目标很明确,而且往往就是光标处的符号。

这时候color-rg这种又能搜文件和目录,同时还内置批量重构功能的插件更为实用。


#60

rg --column --color=always -H --heading --smart-case -e “可以给单词着色。”

c:/Users/yzl/AppData/Roaming/.emacs.d/README.md warning: extra args ignored after ‘rg --column --color=always -H --heading --smart-case -e "可以给单词着色。’

color-rg finished with no matches found at Thu May 16 09:35:31

color-rg的中文搜索怎么不给力? 需要单独额外的配置?明明光标下就有该词组(windows系统)


#61

中文是可以搜索的,检查一下你Emacs的编码设置,可能和你终端的编码设置不一样。


#62

Windows 代码页 问题。

启用win10的全局utf-8选项,虽然这是一个实验性选项,但我使用了一段时间了,除了少部分旧软件内置菜单和显示编码非unicode所以无法正常显示外,使用体验非常好。

windows 下无法进行中文搜索问(其实 日文 韩文 乃至法语等其他拉丁脚本也一样)其实不是emacs编码设置问题,而是emacs对subprocess的命令编码无论你如何设置,在传输到cmdproxy shell 的时候都会转换到你的 locale code page,通常对于中文用户就是gbk编码,因此 rg ag等默认接受utf-8参数的工具接到的是乱码,当然搜索不到。具体bug可以看这个mailing-list https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00406.html

启用后 添加如下片段到你的 启动配置中:

(when (and (eq system-type 'windows-nt)
           (eq w32-ansi-code-page 65001))
  (setq w32-system-coding-system 'utf-8)
  (define-coding-system-alias 'cp65001 'utf-8))

Windows 下emacs,Google translate插件安装之后,翻译的buffer为乱码。该怎么设置。
#63

小文件用swiper,大文件和目录用rg