有没有办法使用当前行作为参考来指定搜索和替换范围? 我可以使用明确的行号来指定范围,例如
:5,15s/foo/bar/g
仅在第5到第15行进行搜索和替换。如何指定“从当前行到当前行以下(或以上)10行的范围”?
答案 0 :(得分:80)
您可以将.
用于当前位置,将.+10
用于10行:
:.,.+10s/foo/bar/g
其他一些有用的范围:
%
表示整个文件。'<,'>
用于视觉选择块的行。这可能比您想要的视觉选择开始或结束在一条线的中间。整条线都包括在内。'a,'b
从标记a到标记b。.,$
从当前行到文件末尾。答案 1 :(得分:16)
:help :range
为您提供所有细节;你可以做很复杂的事情,例如:'a;/pat1/-1
。
对于从当前行开始的范围,一个巧妙的技巧是通过在:
前加上一个计数来启动命令行模式:例如。 5:
变为:.,.+4
。
Protip:了解如何查找命令并导航内置:help
;它是全面的,并提供了许多提示。你不会像其他编辑那样快速学习Vim,但如果你致力于不断学习,那么它将成为一个非常强大和高效的编辑器。