例如,假设我想取代foo
与bar
上线1,3,11和15.我怎么能这样做呢?
:1,15s/foo/bar
Run Code Online (Sandbox Code Playgroud)
将替换foo
为bar
第1-15行.但我想指定多个单独的行(1,3,11,15),而不是范围(1-15).
一种方法:执行:substitute
第一行,然后:&&
在以下行重复相同的替换.
:execute '1s/foo/bar' | 5&& | 11&& | 15&&
Run Code Online (Sandbox Code Playgroud)
另一种方法:使用:global
带有仅与行匹配的模式的命令.
:g/\%1l\|\%5l\|\%11l\|\%15l/s/foo/bar
Run Code Online (Sandbox Code Playgroud)
第三种方式:使用循环:
:for l in [1,5,11,15] | execute l.'s/foo/bar' | endfor
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
214 次 |
最近记录: |