gpt4 book ai didi

VIM - 重新格式化缩进和大括号

转载 作者:行者123 更新时间:2023-12-04 19:03:41 24 4
gpt4 key购买 nike

在 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 中的默认样式,并让重新缩进命令更改样式以匹配我提供的两者中的后者? I've found tools to enforce things like line endings, tabs-vs-spaces, etc,但不是上面显示的样式细节。

    谢谢你。

    最佳答案

    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

    关于VIM - 重新格式化缩进和大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30764040/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com