VIM:如何仅匹配某些行

发布于 2024-11-15 12:33:21 字数 127 浏览 6 评论 0原文

我不知道如何匹配仅某些行的整行 pe

如何匹配(并突出显示)第 10 行到第 25 行中的每隔 3 行:

match
10、11、12号线
16、17、18号线
22、23、24号线

I can't find out how to match the entire line of only certain lines p.e.

How can I match (and highlight) every other 3 lines from lines 10 till 25:

match
line 10,11,12
line 16,17,18
line 22,23,24

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吻安 2024-11-22 12:33:21

嗯,务实的方法是定义一个函数来运行您的文件并匹配您想要的所有行。像这样的东西:

fun! <sid>HiLines(steps) range                                                 
    for line in range(a:firstline,a:lastline,6)                                
        call matchadd('Search', join(map(range(line,line+a:steps-1), '''\%'' . v:val . ''l'''), '\|'))                                                           
    endfor                                                                     
endfun                                                                         

com! -range=% -nargs=1 HiLines :<line1>,<line2>call <sid>HiLines(<f-args>)

现在使用例如 :10,25HiLines 3 来匹配从 10 到 25 的每隔 3 行。

(根据口味调整突出显示组)。

Hm, the pragmatic way would be to define a function that runs over your file and matches all lines you'd like. Something like this:

fun! <sid>HiLines(steps) range                                                 
    for line in range(a:firstline,a:lastline,6)                                
        call matchadd('Search', join(map(range(line,line+a:steps-1), '''\%'' . v:val . ''l'''), '\|'))                                                           
    endfor                                                                     
endfun                                                                         

com! -range=% -nargs=1 HiLines :<line1>,<line2>call <sid>HiLines(<f-args>)

Now use e.g. :10,25HiLines 3 to match every other 3 lines from 10 till 25.

(Adjust highlighting group to taste).

梦纸 2024-11-22 12:33:21

试试这个

:match Search /\%10l\|\%11l\|\%12l/

将突出显示第 10、11 和 12 行

Try this

:match Search /\%10l\|\%11l\|\%12l/

will highlight lines 10, 11 and 12

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文