You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:05:20