LiMinggang / madedit-mod

MadEdit-Mod is a cross platform Text/Hex editor(based on the madedit project @ sourceforge)
GNU General Public License v3.0
124 stars 27 forks source link

A multiline search result bug #173

Closed zhulaojianke closed 8 years ago

zhulaojianke commented 8 years ago

在MadEdit-Mod0.4.0中的正则表达式中引入了"."可以代表换行符的功能(即“单行模式”),这样就可以很方便的使用正则表达式进行多行内容的查找了,原来在Windows里用\r\n也可以达到类似的效果,但是在搜索多行的时候,从“搜索结果窗口”中只能显示一行内容(搜索结果中的第1行),这使得进行多行搜索的效果打了折扣,因为如果第1行的内容都是相同的时候,显示出来的搜索结果就没什么区别,不能达到给用户通过搜索进行内容导航的作用了。 如下图所示: 我感觉应该是搜索结果得到多少行,在搜索结果面板里就会出现相应的行的内容,所以我觉得这可能是MEM的一个bug

zhulaojianke commented 8 years ago

上面的那个图,我用"=+"做了段落分割线,在每个分割线的下边,给出了这个段落的标题,我搜索的表达式的是给出所有段落分割线和相应的标题,这样就形成了一个目录,而得到的"搜索结果窗口"则是通篇的段落分割线,从左边窗口中可以看出,我的这个表达式实际上是搜索到了我需要的结果的,是多行的结果。

zhulaojianke commented 8 years ago

嗯,上面的那个问题我是这么解决的,改变了正则表达式,只让它给出“=+”后面的标题结果

(?<==\r\n)"\S+"

这样就只搜出单行的结果了。

我只是绕过了上面的bug,进行变通——还是希望您能修复这个bug :)

LiMinggang commented 8 years ago

这是一个纯显示的问题,不是很好改。所有的这种用来显示的树形控件基本都不能显示多行。你双击一下看看,结果还是对的。试了一下Notepad++,同样的问题。

zhulaojianke commented 8 years ago

噢,还可以双击哈,我在明天试试看,现在在给老婆做饭呢⋯⋯那么您能不能做一个宏加到下一个版本里。以后搜出这样的结果的时候,调用一次这个宏,把所有的结果都双击一遍,那么效果应该和显示多行结果是一样的了吧? :)

zhulaojianke commented 8 years ago

我试了,您说的双击之后的效果和我上面给出的那个图中的样子是一样的,这里咱们没有啥误会哈。呵呵,我还以为双击之后在"搜索结果窗口"中能够展开呢。如果改动难度太大,那就先这样吧,以后搜索的时候我注意一下就好了。

LiMinggang commented 8 years ago

我昨天又想了下,这个可以fix。