在vim中,我可以使用此方法删除所有包含“价格”一词的行

:g /price/d


如何删除不包含“价格”一词的所有行? br />

评论

可以将这个问题迁移到vi.stackexchange.com吗?我尝试将其标记为要迁移,但无法弄清楚。

@MuMind此处为主题,因此无需迁移。 “不要为了迁移而迁移。我们仅迁移问题是因为问题在原始站点上是不合主题的。一个问题在多个站点上完全有可能成为问题,但这并不是迁移的原因除非OP要求迁移,否则它将在其他位置进行。”另外,只有SE员工可以在60天后迁移,而且很少迁移(甚至版主也不能迁移旧问题)。

#1 楼

您可以使用
:g!/price/d
如下所示,g!v的别名。这等效于
:v/price/d

评论


我知道那很容易...

– digitaljoel
2011年3月31日23:28

:G!也称为:v(类似于grep -v)。

–克里斯·约翰森(Chris Johnsen)
2011年4月1日在3:17



%的作用是什么?

–hippietrail
2012年10月30日7:05

在此上下文中,%是一个特殊范围,表示整个文件。参见:help cmdline-ranges。

–庚烷
2012年10月30日18:05

%是可选的,因为默认范围是整个缓冲区。

–stillanoob
19年2月6日在11:38

#2 楼

您还可以使用:

:v/price/d

删除行。

评论


Fwiw-看起来g代表“全局”,v代表“逆”(如果您相信在vim.famdom上所读的内容)。

–松饼
19年4月11日在1:08

help:v in vim确认它

– Paddy3118
19年6月11日在9:30

#3 楼

%!grep "price"


是另一个选项,对于大型文件,它的速度可能比:v快得多。

在Vim 7.4,Ubuntu 14.04、1M行日志文件上进行了测试。

包含单词的行:https://stackoverflow.com/questions/1725265/how-can-i-delete-all-lines-that-do-not-begin-with-certain-characters/42714334#42714334