如何在Vim中正确缩进C语言结构体的指定初始化器?
在Vim中修复带强制类型转换的C结构体指定初始化器缩进问题
当你在Vim中使用带强制类型转换的C结构体指定初始化器时,默认缩进会出现子项额外缩进的问题,只需调整Vim的C缩进配置即可解决。
解决方案
在你的~/.vimrc(或Vim配置文件)中添加以下配置:
set cinoptions+=(:0
配置说明
cinoptions是Vim控制C语言缩进的核心选项,(:0的作用是让强制类型转换括号(...)后的结构体初始化器大括号内的所有行,与大括号所在行保持相同的缩进层级,避免出现不必要的额外缩进。
效果验证
添加配置后,重新打开代码文件,缩进将符合你的期望:
typedef struct { int foo; int bar; } child_t; typedef struct { child_t child; } parent_t; int main(int argc, char *argv[]) { parent_t p; p.child = (child_t) { .foo = 1, .bar = 2, }; }
内容的提问来源于stack exchange,提问作者Anne van Rossum
相关产品推荐
相关产品推荐

