我有一个如下所示的错误检查单行vim命令。这不是直接的问题的一部分,但可以作为一个例子,可以随意忽略它:vim:防止:exe出错后退出
:'<,'>g/foo{.*}/exe "norm! mxf{lvt}y/\\(foo{\\)\\@!\<C-R>\"\<enter>yy'xP"
这里有一个解释:
:'<,'>g/foo{.*}/
- 运行以下命令对所有高亮行与foo{...}
exe "norm!
- 开始在每一行mx
执行正常模式的命令 - 记录电流线f{lvt}y
- 复制的foo{...}
/\\(foo{\\)\\@!\<C-R>\"\<enter>
花括号内的一切 - 向前搜索到的实例,其中的foo{...}
花括号内的字符串不内foo
- - 复制这一行,回去
x
,并粘贴在上面。
这基本上是一个错误检查命令来查看每一个术语由foo{
包裹时,它总是通过包裹FOO。但是,exe
在第一种情况下退出,其中/
(正向搜索)未找到任何内容。我不希望这种情况发生。
如何使exe
和:g
继续执行,即使exe
命令中存在错误?我试过:silent
,但那并不能保存。
我宁愿把它作为一行,但函数是第二个选项,我很好。
你似乎甚至不需要':执行'在第一个地方。 – romainl
谢谢@romainl,你知道我如何在没有':exe'的情况下做到这一点吗?我迷路了...... – Miles
只是'正常! ...' – romainl