我正在使用this单行查找文本文件中的重复行:
href
当我在:syn clear Repeat | g/^\(.*\)\n\ze\%(.*\n\)*\1$/exe 'syn match Repeat "^' . escape(getline('.'), '".\^$*[]') . '$"' | nohlsearch
源文件上执行它时,它正确返回了很多C
和{
以及空行。但是,它们并不是最有趣的线条。那我可以从这个单行的结果中排除一个或多个字符吗?
答案 0 :(得分:1)
:syn clear Repeat | g/^\(^\(\(\s*break\;\|\s*{\|\s*}\)\@!.\).*\)\n\ze\%(.*\n\)*\1$/exe 'syn match Repeat "^' . escape(getline('.'), '".\^$*[]') . '$"' | nohlsearch
它忽略了以下3种模式:
\s*break;
\s*}
\s*{
您可以在\|
分隔的列表中添加更多内容。
正如您可以轻松发现的那样,它不是一个非常好的可读解决方案。您可以使用very magic mode see :h \v
进行改进。但为什么你甚至需要测试2条相同的线?也许你的整个用例有更好的解决方案