vim配置set tabstop=4后C文件按Tab仅输出1个空格如何解决?
问题原因
你只配置了tabstop参数,该参数仅控制Tab字符的显示宽度,和按下Tab键时实际输入的缩进宽度、自动缩进步长是分开控制的,大概率是softtabstop(软制表符宽度)参数被设为1导致的问题,你可以按以下步骤修复:
修复步骤
- 补充完整.vimrc全局缩进配置,新增缺失的相关参数:
" Tab缩进核心配置 set tabstop=4 " 已有配置,Tab显示宽度为4 set softtabstop=4 " 按下Tab键时实际输入的缩进宽度为4 set shiftwidth=4 " 自动缩进、手动缩进(<</>>)的步长为4 set expandtab " 按下Tab时自动替换为空格,若你需要保留原生Tab字符可改为set noexpandtab
- 若修改全局配置后C文件仍然异常,是因为Vim的文件类型检测插件会为C/C文件加载专属缩进规则,覆盖全局配置,可在.vimrc中新增C/C专属缩进配置强制覆盖:
" 专属配置C/C++文件缩进规则 augroup CustomCIndent autocmd! autocmd FileType c,cpp setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab augroup END
- 配置修改后保存.vimrc,执行
:source ~/.vimrc生效,或重启Vim即可。
验证方法
打开任意C文件,按下Tab键确认输出的缩进宽度为4个空格,也可在Vim命令行输入set softtabstop?查看当前生效的软制表符宽度,输出softtabstop=4即为配置正常。
内容的提问来源于stack exchange,提问作者zelph14
相关产品推荐
相关产品推荐

