我经常发现自己使用的东西是:
sed -ri 's/<\/(abc|def ghi|j klm)>//g' someFile.html
对多个可能的模式执行替换,在这种情况下,是一个要删除的关闭html标记,这样可以节省三次我想删除的三个结束标记的时间和精力。
有没有办法在vim的cli上使用替换?我还没有找到办法做到这一点,但是如果能够以原生方式完成,那么去vim或从vim内部运行sed会更有效率。
答案 0 :(得分:4)
是的,您根本不需要使用外部程序:
:%s@</\(foo\|bar\|baz\)>@@g
答案 1 :(得分:3)
您可以使用silent !
命令从vim内部静默执行shell命令:
:silent !sed -ri 's/<\/(abc|def ghi|j klm)>//g' %
这将在shell中静默执行命令(它不会让你离开vim看到任何shell输出)。 %
表示当前缓冲区名称。然后Vim会通知您正在编辑的文件已被更改,并会询问您是否要加载更改,按l加载并显示sed
shell命令的新更改。