如果我们的代码看起来像
for(...){
}
重新格式化后,我希望它看起来像
for(...)
{
}
以及所有函数,方法,类等。 我在stackoverflow的其他文章中发现了类似的东西,但它是一个正则表达式,需要在vim控制台中每次都输入。我正在寻找一些东西放在vimrc文件中(如果可能的话)并且每次打开它都要工作。
这是我发现的那个:
:%s/^(\s*).*\zs{\s*$/\r\1{/
在http://stackoverflow.com/questions/4463211/is-there-a-way-to-reformat-braces-automatically-with-vim中的但是,即使括号位于正确的位置,它也会添加一个新行......但仍然不知道如何将其映射到组合键。
答案 0 :(得分:0)
(用更准确的模式编辑)
这应该可以解决问题:
nnoremap <F9> :%s/^\(\s*\).\+\zs{\ze\s*$/\r\1{<cr>
但它对我来说听起来并不“安全”。
相反,你可以这样做:
nnoremap <F9> :%s/^\(\s*\).\+\zs{\ze\s*$/\r\1{/c<cr>
将要求确认每场比赛。
或录制宏并使用:global
播放。
修改强> 的
您的模式:%s/^(\s*).*\zs{\s*$/\r\1{/
错误,因为:
捕获括号未正确转义,(\s*)
而不是\(\s*\)
.*
会匹配任何字符的任意个数,包括0
,这就是为什么替换也适用于具有单个{
的行。