在每个段落的开头/结尾执行命令

时间:2013-02-26 12:55:23

标签: vim

任何人都可以建议在每个段落的开头执行命令(特别是在视觉选择中)吗?例如,我用纯文本写了一个文档,现在我想把它转换成HTML,所以我要做的就是在<p></p>中包装每个段落。

修改

到目前为止,我唯一想到的就是:'<,'>g/^\s*$/normal o<p>^[在段落的开头插入<p>标签,并使用大写 O在段落末尾添加结束标记。显然,这会触及任何空行,因此如果段落之间有多行,则会插入其他不必要的标记。

2 个答案:

答案 0 :(得分:2)

尝试此命令:

g/\v(\_^\s*\n)@<=\S/normal O<p>^[}o</p>

^[C-V <ESC>

\v打开“非常强大”,以便其他模式更易于编写。括号包含一个子表达式,它匹配行的开头(\_^),任何数量的whitepsace(\s*),然后是行尾(\n)(换句话说,一个空行)。 @<=表示前面的子表达式实际上不包含在匹配的文本中,但需要匹配。然后任何非空白字符(\S)结束匹配模式。

它的工作原理如下:

enter image description here

答案 1 :(得分:1)

只需安装surround并再次享受生活:

选择您的段落然后执行s<p>