Chinaunix
标题:
vim里面怎么在指定的范围行内删除
[打印本页]
作者:
cnvbird
时间:
2015-02-25 15:52
标题:
vim里面怎么在指定的范围行内删除
我要删除文本里面100~200行中的注释行
:100,200/^#.*$/d 结果把非注释行也删除了,请教高手指点。
作者:
dn833
时间:
2015-02-25 16:03
:100,200 s/^#.*//
复制代码
试试看
作者:
我是一隻羊
时间:
2015-02-25 16:13
100,200g/^#/d
作者:
cnvbird
时间:
2015-02-25 16:25
三楼的可以,二楼的是替换,有空白行产生
作者:
cnvbird
时间:
2015-02-25 16:26
为上面要加上g
作者:
cnvbird
时间:
2015-02-25 16:30
g不是全局查找吗?这里已经指定查找范围,为什么要加上g?
作者:
我是一隻羊
时间:
2015-02-25 16:49
:[range]global/{pattern}/{command}
range:100,200
global:g
{pattern}:^#
{command}:d
作者:
cnvbird
时间:
2015-02-25 16:51
:100,200/^#.*$/d,这样无法达到删除的目的原因是什么,误删除了非注释行
作者:
刺客阿地
时间:
2015-02-25 18:02
@cnvbird
因为你匹配到$最后了,也就是100到200,直接到了文档的末尾,中间没有注释的,也会被删除,范围扩大了。
我是这么理解的。
作者:
我是一隻羊
时间:
2015-02-25 19:22
回复
8#
cnvbird
没有这用法吧,可能/{pattern}/中的{pattern}没有被解释,直接100,200d
具体的我也不是很明白,看看有没有大神来回答下.
作者:
这个冬天不冷
时间:
2015-02-26 08:50
g是 一行内所有的都替换,想知道更多 help s, 在测试 下 把 g换成 1 2 3 4 等 测试下
作者:
blackold
时间:
2015-02-26 12:29
g 或 v 命令。
作者:
endless_loop
时间:
2015-02-27 01:14
这个冬天不冷 发表于 2015-02-26 08:50
g是 一行内所有的都替换,想知道更多 help s, 在测试 下 把 g换成 1 2 3 4 等 测试下
g是global命令吧,放在后面才是全局替换
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2