Content #
global 命令允许我们在某个指定模式的所有匹配行上运行 Ex 命令。 global命令通常采用以下形式(参见 :h :g):
:[range] global[!] /{pattern}/ [cmd]
- 在缺省情况下,:global命令的作用范围是整个文件(%),这一点与其他大多数 Ex 命令(包括 :delete、:substitute 以及 :normal)有所不同,这些命令的缺省范围仅为当前行(.)。
- {pattern} 域与查找历史相互关联。这意味着如果将该域留空的话,Vim会自动使用当前的查找模式。
- [cmd] 可以是除 :global命令之外的任何 Ex 命令。如果我们不指定任何 [cmd],Vim将缺省使用 :print。
- 可以用:global! 或者 :vglobal(v 表示 invert)反转 :global命令的行为。这两条命令将指示Vim在没有匹配到指定模式的行上执行 [cmd]。
最后需要指出的是:global 命令在指定 [range] 内的文本行上执行时通常分为两轮。第一轮,Vim会在所有 [pattern] 的匹配行上做上标记。第二轮,再在所有已标记的文本行上执行 [cmd] 。另外,由于 [cmd] 的范围可单独设定,因此可在多行文本段内进行操作。
From #
Vim实用技巧