这是文件中的一些文本行。我需要使用vi编辑器删除某些文本块。
极光(复数:极光或极光)是天空中的自然光显示,特别是在高纬度(北极和南极)地区,由高能大气环境中的高能带电粒子与原子的碰撞引起。
Most aurorae occur in a band known as the auroral zone[2][2] which is typically 3° to 6° in latitudinal extent and at all local times or longitudes.
The auroral zone is typically 10° to 20° from the magnetic pole defined by the axis of the Earth's magnetic dipole. During a geomagnetic storm, the auroral zone will expand to lower latitudes. The diffuse aurora is a featureless glow in the sky which may not be visible to the naked eye even on a dark night and defines the extent of the auroral zone.
我有一个像上面这样的输入文件。在这个文件中,我必须删除某些文本块的出现,如下所示。
Most aurorae occur in a band known as the auroral zone[2][2] which is typically 3° to 6° in latitudinal extent and at all local times or longitudes.
所以,我使用的是以下命令:
:g/^Most/,/auroral/,/longitudes./d
我正在删除以Most开头的行,最后是中间和经度的极光。
答案 0 :(得分:2)
您可以做的事情有明显的限制,但在上下文中,您可以使用:
:g/^while/.,/^}/d
删除while
循环,其中while
位于一行的开头,直到行开头的近括号。
请你再补充一点吗?
:g/^while/
部分全局搜索以while
开头的行。接下来是为每个匹配的行执行的ex
命令。该命令是.,/^}/d
,这意味着从当前行(.
)到以紧括号(/^}/
)开头的下一行执行删除(d
)。您也可以使用向后搜索或相对动作(?^{?
或.-3
或.+10
)等内容。
很难从评论的错误外观中准确地了解您的想法(不是您的错误 - 评论不会保留有用的格式。)
--------------
Stack Over Flow
c**p
c**p
c**p
cool
c**p
c**p
c**p
------------
我需要将Stack Over Flow替换为
------------
[...]
这很简单,我看不出cool
对它有什么影响:
:g/^Stack Over Flow/.,/^-------/d
这与我原来的答案是同构的。
答案 1 :(得分:1)
删除块{ ... }
而不是搜索和替换会更容易。
您可以前往该区域(内部或开放式)并使用daB
将其删除