例如,假设我想取代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 次 |
| 最近记录: |