如何启用Neovim对C文件的自动缩进功能?
解决Neovim C文件自动缩进失效问题
1. 确认核心缩进开关是否开启
检查你的init.vim里有没有这行配置:
filetype plugin indent on
这行是Neovim加载各类文件类型专属缩进规则的基础,C文件的自动缩进完全依赖它。如果没加,补上后重启Neovim再试。
2. 手动指定C文件的缩进规则
如果已经开了上面的开关还是不行,给C文件单独加缩进配置,把这段贴到init.vim里:
autocmd FileType c setlocal autoindent smartindent cinoptions=g0,t0,+2,(0
autoindent:让新行继承上一行的缩进smartindent:专门给C类语言做的智能缩进,会自动处理大括号、循环/判断语句后的缩进cinoptions:微调C缩进细节,比如+2就是大括号里缩进2个空格,(0处理括号后的缩进逻辑
3. 排查插件或全局配置冲突
如果装了类似vim-indent-guides这类和缩进相关的插件,先临时禁用,看看是不是插件抢了缩进的控制权。另外检查全局缩进设置,要是全局开了noautoindent,会覆盖C文件的局部缩进配置,得把全局的这类设置去掉。
4. 用干净配置验证默认功能
搞个临时的极简init.vim,只写filetype plugin indent on,打开C文件测试默认缩进是否正常。如果默认没问题,就说明你原来的配置里有某个项冲突了,一点点加回去排查就行。
测试的时候可以输这段代码试试:
int main() {
按回车后应该自动缩进,输入内容后打},应该自动对齐到和main()同一行的位置。
内容的提问来源于stack exchange,提问作者Arseniy Koshelnik
相关产品推荐
相关产品推荐

