Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在Vim中将此行后的空行移到此行前_Regex_Vim_Substitution - Fatal编程技术网

Regex 在Vim中将此行后的空行移到此行前

Regex 在Vim中将此行后的空行移到此行前,regex,vim,substitution,Regex,Vim,Substitution,我有以下案文: 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. 因此

我有以下案文:

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.

因此,我想删除标题行后面的空行,而在标题行之前添加空行。标题行均以“:”结尾的标识。

我尝试了以下代码

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

但它不起作用

如果我正确理解您的要求,我会选择
:g/{cmd}
而不是
:s/../../

g/:$/norm JO
如果您不想在
后面留空格,请在
J
之前添加一个
g

说明:
  • 对于所有匹配的
    pat
    ,执行正常模式命令
    J
    O
  • J
    确实连接,这意味着下一个换行符“已删除”
  • O
    在当前行之前添加一个空行
您可以在
标题
行上移动光标,按
JO
查看发生了什么

如果您需要进一步解释/详细信息,请阅读:

:h :g
:h :norm
:h J  (or :h gJ)
:h O

如果我正确理解您的要求,我会选择
:g/{cmd}
而不是
:s/../../

g/:$/norm JO
如果您不想在
后面留空格,请在
J
之前添加一个
g

说明:
  • 对于所有匹配的
    pat
    ,执行正常模式命令
    J
    O
  • J
    确实连接,这意味着下一个换行符“已删除”
  • O
    在当前行之前添加一个空行
您可以在
标题
行上移动光标,按
JO
查看发生了什么

如果您需要进一步解释/详细信息,请阅读:

:h :g
:h :norm
:h J  (or :h gJ)
:h O
它是如何工作的

: ............... command
g ............... global
/TITLE/ ......... all lines with TITLE
m+1 ............. move to the next line
它是如何工作的

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

@ctwheels能否基于此提供完整答案-正确的命令行和简要说明?@ctwheels能否基于此提供完整答案-正确的命令行和简要说明?是的,它工作得非常好。简单解释一下它是如何工作的,这对大家都有帮助。@RN如你所愿。在答案中添加。非常好的答案!特别是使用
:g/{cmd}
而不是替换。使事情变得更简单。使用
:move
将时间缩短一点。e、 是的,它工作得很好。简单解释一下它是如何工作的,这对大家都有帮助。@RN如你所愿。在答案中添加。非常好的答案!特别是使用
:g/{cmd}
而不是替换。使事情变得更简单。使用
:move
将时间缩短一点。e、 g.
:g/:/+m-