道歉,如果这已经发布,因为我找不到答案,即使在vim wiki上也是如此。vim:运行基于一个命令的多个命令:全局命令
有没有一种方法可以在vim命令行模式下运行多个命令关闭一个:g
搜索?
例如,
:%g/foo/ s/bar/\[email protected]/g | exe "norm /cat\<enter>\"ayiw"
哪个(什么,我想让它做)应该在每一行匹配foo
,更换bar
与寄存器a
的内容,然后找到的下一个迭代cat
(即使前面有很多行),并将周围的单词放入寄存器a
。
而是,此特定语法使用初始a
寄存器的当前内容完成替换命令,然后在一行(在替换完成后)上执行正常模式命令。
此示例不是我特定的用例,但显示了此功能有用的一个实例。我意识到我可以把它全部放入一个exe
,即%g/foo/exe "norm :s/bar/\\[email protected]/g\<enter>/cat\<enter>\"ayiw"
,但我想这样做的第一种方式,因为我觉得它更灵活。
我宁愿做这个用香草vim的,但如果一个插件存在这一点,这是一个不错的选择。有人知道是否有语法来做这样的事情吗?
有趣。通常,每个匹配行上应该执行一次'规范...',但它看起来好像只能执行一次。 '/.../'搜索似乎会导致这种情况。 –