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
进行授权