VIM-重新格式化压痕和大括号

VIM-重新格式化压痕和大括号,vim,coding-style,vim-plugin,Vim,Coding Style,Vim Plugin,在VIM中处理代码块时,我能够通过在可视模式下选择一个区域(SHIFT+v),然后点击=,轻松地重新缩进代码块。这将重新标记代码行,使用正确的缩进深度、硬制表符与空格等 我有一大组需要重新计算的函数,我有几个代码块,其中括号与if/else关键字位于同一行,即: if(something) { doFunction(something); } else if(somethingElse) { doFunction(somethingElse); } else { // default

在VIM中处理代码块时,我能够通过在可视模式下选择一个区域(SHIFT+v),然后点击=,轻松地重新缩进代码块。这将重新标记代码行,使用正确的缩进深度、硬制表符与空格等

我有一大组需要重新计算的函数,我有几个代码块,其中括号与
if/else
关键字位于同一行,即:

if(something) {
  doFunction(something);
} else if(somethingElse) {
  doFunction(somethingElse);
} else {
  // default stuff to do
}
我想将大括号和间距样式更改为:

if ( something ) {
  doFunction( something);
}
else if ( somethingElse )
{
  doFunction( somethingElse );
}
else
{
  // default stuff to do
}
区别包括:

  • 在自己的专用线路上有开启/关闭支架
  • if
    else if
    和函数的参数有一个空格,将参数列表的开头和结尾与周围的圆括号隔开
  • if
    /
    else if
    和参数括号之间有空格,但函数名和参数括号没有空格
有没有办法将此样式设置为VIM中的默认样式,并让重新缩进命令更改样式以匹配我提供的两种样式中的后一种?但不是上面所示的样式细节


谢谢。

vim中的缩进脚本不是为如此复杂的任务构建的。我建议您使用
indent
命令,尤其是以下参数:

-prs, --space-after-parentheses
Put a space after every '(' and before every ')'.
See STATEMENTS.
-sai, --space-after-if
Put a space after each if.
See STATEMENTS.
有关更多详细信息,请阅读命令的手册页

显然,此命令可用于通过以下方式过滤缓冲区的内容:

:%!indent