Vim中全局extern声明的2空格缩进失效问题求助
Vim中C语言全局extern声明的2空格缩进解决方案
直接在你的.vimrc中替换缩进相关配置为以下内容:
set shiftwidth=2 set tabstop=2 set expandtab set cindent set filetype indent on set cinoptions+=s2 set cinoptions+=L0
配置说明
set cindent:启用Vim针对C族语言的专业缩进引擎,比smartindent/autoindent更精准适配C语法规则set filetype indent on:确保Vim根据文件类型(如.c)自动加载对应缩进规则cinoptions+=s2:指定extern、struct、union这类关键字本身的缩进为2空格,匹配你期望的全局extern缩进要求cinoptions+=L0:控制extern {}块内的语句缩进逻辑,确保块内声明按正常层级缩进,不会出现额外偏移
验证方法
输入或打开包含extern声明的C代码,使用==命令缩进当前行,或自动换行后查看效果,预期输出如下:
extern int global_foo; extern void global_bar(int arg); extern { int block_baz; void block_qux(); }
如果之前修改过cinoptions导致冲突,可以先执行set cinoptions&恢复默认值,再添加上述配置项。
内容的提问来源于stack exchange,提问作者Pushpendra
相关产品推荐
相关产品推荐

