对于":substitute"命令和很多其它的":"命令, 可以指使它们作用于
一 些 行 上, 这 叫 命 令 的 作 用 范 围 . 作 用 范 围 的 最 简 单 形 式 是 两 个 以 数 字 表
示的行号. 如下:
:1,5s/this/that/g
该 命 令 将 对 第1到 第5行 的 文 本 执 行 替 换 操 作. 也 包 括 第1行 和 第5行.
这样的作用范围总是放在命令的最开始
单个的数字指示命令将只作用于由该数字指定的行上:
:54s/President/Fool/
有 一 个 命 令 在 你 不 指 定 作 用 范 围 时 默 认 是 对 整 个 文 件 进 行 操 作. 要 使
它 们 只 作 用 于 当 前 行 上, 可 以 在 命 令 前 放 一 个"."1 . ":write"就 是 这 种
命 令 的 典 型. 不 指 定 作 用 范 围 , 它 将 写 入 整 个 缓 冲 区 的 内 容 . 下 面 的 命
令使它只把当前行写入指定文件:
:.write otherfile
第 一 行 的 行 号 一 定 是1. 但 是 最 后 一 行 呢? "$"用 于 代 表 最 后 一 行.
比如, 下面命令替换当前行到最后一行中所有的yes为no:
:.,$s/yes/no/
所以, 前面用到的"%"范围指定符号, 实际上等价于"1,$".