我想更改以下代码:
if (test)
{
statements;
}
else
{
statements;
}
以下内容:
if (test) {
statements;
} else {
statements;
}
使用' ='没有做这个功能(据我所知)。 是否有任何聪明的VIM命令可以做到这一点?
答案 0 :(得分:0)
你可以玩正则表达式。在这里,它将是:
:%s/\_s*{/ {/g
:%s/}\zs\_s*\ze\(else\|while\)/ /g
秘密位于/\_s
,类似/\s
(与空格匹配),但也匹配换行符。
如果您还想转换{ return foo; }
之类的内容,您还必须插入换行符,然后重新启动所有内容。
:%s/\_s*{\_s*/ {\r/g
gg=G
您还可以查看集成了AStyle或clang-format等工具的vim插件,这些插件可以提供更好的结果。
PS:lh-cpp和mu-template片段有一个选项(通过:AddStyle
),让最终用户指定是否插入换行符。有时,更好的方法是生成符合项目风格的代码。