使用Vim,如果我想删除包含文本pending
的每一行,我可以这样做:
:g/pending/d
如何使用范围进行此操作?假设我想删除文本pending
的每一行,但只删除第0行和第60行(或者在0和此之间),例如:
:0,./pending/d
我已经搜索过,但我没有看到如何做到这一点。我知道你能做到
:0,. normal <command>
但是我不确定有条件地删除一行的正常模式命令是什么。
P.S。你在哪里帮助学习这些东西;)
答案 0 :(得分:4)
与大多数(如果不是全部)Ex命令一样,:global
占用范围。因此,如果:g/pending/d
在整个缓冲区中执行您想要的操作,它也会在给定范围内执行您想要的操作:
:1,.g/pending/d
至于在哪里可以找到这一点,嗯......只看Vim的文档。
:help :global
说:
*:g* *:global* *E147* *E148*
:[range]g[lobal]/{pattern}/[cmd]
Execute the Ex command [cmd] (default ":p") on the
lines within [range] where {pattern} matches.
这很清楚。
注意:行从1
开始。