vim 命令解释

Ex 命令行范围

:h cmdline-ranges [range] E16
:h :, :;

有些 Ex 命令前面可以接受一个范围限定,它由被 ’,’’;’ 分割的行限定符组成,它们的区别在于对光标位置的设置不同。
当使用 ’;’ 分割范围时,在解释下一个行限定符之前,光标位置会被设置为前一个行限定符所确定的行值,而使用’,’分割范围时,光标位置不会改变。例如下面一段文本:

1 service_list = {
2     "apidoc"
3     "autopass-ui"
4     "catalog-ui"
5     "idm-admin"   <-- 当前光标位置,第5行
6     "launchpad"
7     "subscription-ui"
8     "portal"
9 }

使用 2,/ui/ 会从第 2 行开始, 匹配当前光标之后一个 “ui” 所在行为止的范围。

:2,/ui/p
2     "apidoc"
3     "autopass-ui"
4     "catalog-ui"
5     "idm-admin"   <-- 当前光标位置,第5行
6     "launchpad"
7     "subscription-ui"

使用2;/ui/ 会从第 2 行开始,匹配第 2 行之后的一个 “ui” 所在行为止的范围。

:2;/ui/p
2     "apidoc"
3     "autopass-ui"