使用当前行作为参考点进行vim搜索和替换

时间:2013-08-02 15:11:38

标签: vim

有没有办法使用当前行作为参考来指定搜索和替换范围? 我可以使用明确的行号来指定范围,例如

:5,15s/foo/bar/g

仅在第5到第15行进行搜索和替换。如何指定“从当前行到当前行以下(或以上)10行的范围”?

2 个答案:

答案 0 :(得分:80)

您可以将.用于当前位置,将.+10用于10行:

:.,.+10s/foo/bar/g

其他一些有用的范围:

  • %表示整个文件。
  • '<,'>用于视觉选择块的行。这可能比您想要的视觉选择开始或结束在一条线的中间。整条线都包括在内。
  • 'a,'b从标记a到标记b。
  • .,$从当前行到文件末尾。

答案 1 :(得分:16)

:help :range为您提供所有细节;你可以做很复杂的事情,例如:'a;/pat1/-1

对于从当前行开始的范围,一个巧妙的技巧是通过在:前加上一个计数来启动命令行模式:例如。 5:变为:.,.+4

Protip:了解如何查找命令并导航内置:help;它是全面的,并提供了许多提示。你不会像其他编辑那样快速学习Vim,但如果你致力于不断学习,那么它将成为一个非常强大和高效的编辑器。