Vim 命令解释

 

Vim 中关于 ,; 在命令行范围中的不同效果。

Ex 命令行范围

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

有些 Ex 命令前面可以接受一个范围限定,它由被 ,; 分割的行限定符组成,它们的区别在于对光标位置的设置不同。

当使用 ; 分割范围时,在解释下一个行限定符之前,光标位置会被设置为前一个行限定符所确定的行值,而使用 , 分割范围时,光标位置不会改变。例如下面一段文本:

  1 service_list = {
  2     "apidoc"              <-- 范围开始 (2)
  3     "autopass-ui"         <-- 范围结束 (;/ui/)
  4     "catalog-ui"
  5     "idm-admin"           <-- 当前光标位置
  6     "launchpad"
  7     "subscription-ui"     <-- 范围结束 (,/ui/)
  8     "portal"
  9 }
  • 2,/ui/,从第 2 行开始,到 当前光标之后的 /ui/ 所在行 为止。

    :2,/ui/p
    
    2     "apidoc"
    3     "autopass-ui"
    4     "catalog-ui"
    5     "idm-admin"
    6     "launchpad"
    7     "subscription-ui"
    
  • 2;/ui/,从第 2 行开始,到 第2行之后的 /ui/ 所在行 为止。

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