关于vi使用的问题

关于vi使用的问题

我在vi中使用这个命令来删除所有包含“abc”的行:

1,$ /abc/d

为什么每次总是只删除第一行?我不是已经用1,$来表示所有范围吗?
[code:1]:g/abc/d[/code:1]
你那样似乎是删除从第一行到第一次出现abc的行
那么在使用替换命令时,就需要这么指定呢?比如:

:1,$ s/abc/ABC/g

表示从第一行开始替换所有abc为ABC,这个时候为什么1,$就表示所有行呢?
不知道,我都是用%s/a/A/g
多谢vsxf。
那如果我想删除第10行到第20行的数据该怎么办呢?总不能每次操作都针对所有的文本吧。
:10,20d