文章

vim 匹配指定行号的内容

有的时候明确知道需要保留那些行,虽然可以采用匹配每行的字符,但是可能需要保留的行的内容在其他行中也存在,这个时候可以利用 vim/nvim 的 \% 特殊字符匹配指定的行内容。

再结合 :g:g!:v 来选择/反选指定的行/列内容可以高效的过滤行

符号 含义 备注
\% 用于匹配行号或列号  
\%^ 匹配文件开始的位置  
\%Nl 匹配指定的[n]行,l 表示行号,line  
\%'m 匹配指定的 m 标记  
\%>'m 匹配在 m 标记之后的内容 可以使用<、>、'
\%.l 匹配光标所在的行  
\%>.23l 匹配光标所在行下方的内容  
\%Nc 匹配指定的列 ‘column’ <23c、>23c、.c、<.c、>.c
\%23v 匹配指定的虚拟列  

匹配指定的行号

1
2
### 匹配删除第二行
:g/\%2l/d

匹配删除除第二行之外的所有行

1
2
:g!/\%2l/d
:v/\%2l/d

匹配多行

1
:g/\%2l\|\%4l/d

可以匹配删除第二行和第四行的内容

匹配连续的多行

1
:g/\%2l,\%4l/d

以上写法并不能直接匹配第二行到第四行的内容,需要曲线实现

1
:g/\%<2l\|\%>4l/d

匹配大于或者小于指定行的内容,例如以上通过匹配小于第二行或者大于第四行的内容,相当于匹配第二行到第四行的内容,以此实现匹配连续的行🤣🤣🤣

本文由作者按照 CC BY 4.0 进行授权

© TheDarkStarJack. 保留部分权利。

[本站总访问量次] [本站访客数人次] [本文总阅读量次]

本站采用 Jekyll 主题 Chirpy