vim - 删除行不(包含模式和模式上方的 2 行)

标签 vim

在 Vim 中,我尝试删除文件中的所有行(包含一个模式和该模式上方的 2 行)。我尝试:

:g!/pattern/.-2 d

但它说:无效范围...
该怎么办?

最佳答案

下面的命令查找不匹配的行 pattern并删除它们和上面的两行:

:g!/pattern/-2,.d

下面的命令查找不匹配的行 pattern并删除位于上面两行的行:
:g!/pattern/-2d

范围总是向下,所以我们首先使用高地址——-2 — 和较低的一秒 — . ——。

也就是说,如果匹配行上方没有两行,您很可能会收到错误消息。

关于vim - 删除行不(包含模式和模式上方的 2 行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31312140/

相关文章:

VIM:交换由冒号分隔的列

c# - 如何使用 VIM 进行 .Net 开发

vim - emacs 等同于 vim 重新映射,例如:nnoremap dd g0dg$

java - Vim 语法高亮 java 中的标识符和函数

ubuntu - 使用vim时如何去除这个绿色区域?

vim - 在 vim 中粘贴时转义字符

vim - 在Vim中获取相对路径

vim - Vim-在PHP文件上激活HTML代码段

vim - 如何交换 vim 命令

vim - tempname() 不创建目录