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