繁体   English   中英

在Vim中将该行之后的空白行移至该行之前

[英]Shift blank line after this line to before this line in Vim

我有以下文字:

A simple line
TITLE1:

Another usual line
TITLE2:

More usual lines here
TITLE3:

Last line of this sample text.

我想将以上转换为:

A simple line

TITLE1:
Another usual line

TITLE2:
More usual lines here

TITLE3:
Last line of this sample text.

因此,我想删除TITLE行之后的空白行,而在标题行之前添加一个空白行。 TITLE行均以':'结尾

我尝试了以下代码

:%s/(.+):\r/\n\1:/g

但它不起作用。

如果我理解您的要求正确,我将使用:g//{cmd}而不是:s/../../

g/:$/norm JO

如果不想在:后面有空格,请在J之前添加g

说明:

:g/pat/norm JO
  • 对于所有与pat匹配的行,请执行正常模式命令JO
  • J确实加入,这意味着“删除”了下一个换行符
  • O在当前行之前添加一个空行。

您可以在TITLE行上移动光标,按JO看看会发生什么。

如果您需要进一步的解释/细节,请阅读:

:h :g
:h :norm
:h J  (or :h gJ)
:h O
:g/TITLE/ m+1

它是如何工作的?

: ............... command
g ............... global
/TITLE/ ......... all lines with TITLE
m+1 ............. move to the next line

的Grep

[英]Grep for <?php after blank line

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM