:g /price/d
如何删除不包含“价格”一词的所有行? br />
#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
评论
可以将这个问题迁移到vi.stackexchange.com吗?我尝试将其标记为要迁移,但无法弄清楚。@MuMind此处为主题,因此无需迁移。 “不要为了迁移而迁移。我们仅迁移问题是因为问题在原始站点上是不合主题的。一个问题在多个站点上完全有可能成为问题,但这并不是迁移的原因除非OP要求迁移,否则它将在其他位置进行。”另外,只有SE员工可以在60天后迁移,而且很少迁移(甚至版主也不能迁移旧问题)。