我有这个文件
foo
foo bar
foo bar baz
bar baz
foo baz
baz bar
bar
baz
foo 42
foo bar 42 baz
baz 42
我想要
- 选择包含
foo
和不包含的行bar
- 删除包含
foo
和不包含的行bar
我在某处(找不到链接)读到我必须为此使用 :exec |
。
我尝试了以下方法,但它不起作用
:exec "g/foo" # works
:exec "g/foo" | exec "g/bar" -- first returns lines with foo, then with bar
:exec "g/foo" | :g/bar -- same as above
当然,如果我不能选择一条线,我就不能normal dd
在上面执行。
有任何想法吗?
编辑
赏金注意事项:
我正在寻找一种使用正确 :g 和 :v 命令且不使用正则表达式黑客的解决方案,因为条件可能不一样(我可以有 2 个包含,3 个排除)。
另请注意,最后两个不起作用的示例,它们仅用于删除行,但是当我在不删除的情况下运行它们(即查看所选行)时它们返回不正确的信息,并且它们的行为如上所述。