两个括号内的自动缩进 - Vim

Auto indentation inside two parenthesis - Vim

我希望vim像这样自动缩进

int function_that_takes_long_arguments(long_argument_1,|
                                                       ^
                                              This is the cursor.

按回车键

int function_that_takes_long_arguments(long_argument_1,<enter>
>   >   >   >   >   >   >   >   >   ...|);
    ^                                ^ ^
(tab - 4 spaces)                     | |
                 (Add spaces to align) |
                      (I want the cursor to auto indent here)

开始写其他参数

int function_that_takes_long_arguments(long_argument_1,<enter>
>   >   >   >   >   >   >   >   >   ...long_argument_2,<enter>
>   >   >   >   >   >   >   >   >   ...long_argument_3);

另一个例子:

void function(argument_1, argument_2, argument_3,<enter>
>   >   >   ..argument_4, argument_5);

C/C++ 文件中的缩进通常由内部例程管理(另请参阅 :h C-indenting)。 :h cinoptions-values.

下详细说明了支持的选项

所以假设你在当前缓冲区中有 setlocal cindent(包括简单的 filetype indent on 自动设置 cindent 一些 filetypes/extensions),这就足够了

~.vim/after/indent/c.vim

setlocal cinoptions=(0