[英]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
匹配的行,请执行正常模式命令J
和O
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.