在 vim 中与正则表达式匹配的行之前插入一行文本

在 vim 中与正则表达式匹配的行之前插入一行文本

我正在尝试使用 vim 向 HTML 表添加一列,因此我需要<td>在每个行之前添加一对标签</tr>。到目前为止,我已经

:186,$s/ <\/tr>/<td><\/td> \n <\/tr>/g
但 vim 却显示^@关闭 tr 标签而不是新建一行。有什么办法吗?

答案1

是的,你需要在替换部分使用\r而不是\n,这是 Vim 命令的一个怪癖。你可以使用不同的分隔符(例如)并通过 引用匹配项来:s进一步简化命令:#&

:186,$s# </tr>#<td></td> \r&#g

相关内容