Automatically expand the block of matching keywords in org files and … · manateelazycat/color-rg@30e9cba · GitHub 今天写了个补丁, 更好的支持 org 文件内容搜索, 主要增强了:
1.搜索 org 文件的时候, 自动展开org文件中匹配关键字的区域, 以前需要手动按Tab展开
2.当关键字在 org link 语法块内会自动进行位置修正, 比如 [[file link]] 会向前移动两个字符的位置, 比如关键字在 http link 的连接字符串中 [[ link content ] [ link title]] , 而不是在标题区域, 会自动跳转到连接字符串的开头位置
上面的两个增强会让 color-rg.el 对 org 文件内容的搜索更加方便.
还遗留的问题是, 在 org 文件中, 如果有中英文混合的情况下, move-to-column 的位置不正确, 还在想办法解决, 如果有哪位高手有方案, 欢迎分享解决方案.
1 个赞
应该现做两个实验
@node VHDL程序组件
搜索 “VH” 的时候应该是 行:7
搜索 “组件” 的时候应该是 行:17
因为我用的是utf-8的编码,得到这个结果的原因是因为一个中文可能是三个char编码而成的
还有就是index是从1开始,而不是从0开始
move-to-column 他把中文当成2个char
解决这个问题可以从两方面着手
1.修改rg的代码,让他对utf-8编码的计数不是按三个char,而是按2个char
2.分析buffer中的当前行,分别将中文字符按3个、2个char计数,得到与rg对应的那个column
不用那么麻烦,直接用string-bytes函数就可以了
今天写了一个小补丁: 跳转匹配的时候, 显示匹配行所在的函数名
使用场景:
经常需要在大型项目中查看某个变量的引用情况, 如果这个变量在多个文件中都有, 而且所处行的函数非常长, 这个小特性就非常有用, 在分析变量引用的同时不用滚动窗口就知道所处的函数区域, 加快源码分析的速度.
2 个赞
我只用我自己的lazy-search , 不开发我不用的功能,没时间,抱歉,但是我欢迎任何人的补丁。
1 个赞
好像发现了一个bug
c语言的代码一般都有tab 在我的电脑上tab是8个空格
在有tab的行跳转到的column会出偏差
把move-to-column 改成 goto-char就可以了
我测试了你的文件,move-to-column 没有问题。
我觉得你最好用 github 的 issue, 把你的配置,你遇到的问题,重现环境,甚至你觉得正确的PR一次提交,这样在论坛每次只说一句话效率很低,也耽误看帖子人的事件。
多测试一下吧,如果是bug,欢迎提交issue。
还有就是,你用的是你自己改造的版本还是我的版本?至从你上次提交PR以后我又写了很多补丁。
确实是我的问题
我用的还是我的版本
在你的版本中 color-rg-jump-to-column 应该是连中文的问题都解决了
不过 现在还是不能同时搜索两个关键字吗?
那个功能不难实现的吧!
是的,最新版支持中文跳转和Org-Link连接的跳转,现在已经比较智能的跳转到对应的位置,其他 ripgrep 工具都不支持中文列跳转。
不难, 只是不知道同时搜索两个关键字的初衷是啥?
1 个赞
三个函数 函数pub 调用了pri1和pri2
我想知道pub函数被用在了哪里 及另外两个函数的实现
在搜索pub的color-rg里 我删除了一些不想要的文件
这个时候我又想搜索classa的用法 但怎么保留我的修改