vim 中规范 python 缩进需启用 filetype plugin indent on,用 autocmd 为 python 文件设 tabstop=4、shiftwidth=4、softtabstop=4、expandtab、autoindent 和 smartindent,并可用 gg=g 重缩进、:%s/\t/ /g 替换 tab、:%s/\s+$//e 清空格,还可通过 autocmd bufwritepre *.py !black -q % 保存时自动格式化。

在 Vim 中规范 Python 脚本编写,核心是让缩进严格遵循 PEP 8:统一用 4 个空格、禁用 Tab、新行自动对齐、语法感知缩进。配置不复杂,但几处关键设置缺一不可。
启用文件类型识别与智能缩进
这是实现“Python 专属缩进”的前提。仅全局设 4 空格不够,必须让 Vim 懂得 Python 的语法结构(比如 if 块后换行要多缩进一层,: 后自动对齐)。
- 在
~/.vimrc中添加:filetype plugin indent on - 确保 Python 文件被正确识别:打开
.py文件后执行:set filetype?,应显示filetype=python - 若未生效,手动触发:
:filetype detect
设定空格缩进参数(专用于 Python)
避免影响其他语言,推荐用 autocmd 为 Python 文件单独配置,而不是全局设置。
- 在
~/.vimrc中加入:autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab autoindent smartindent -
tabstop=4:Tab 显示宽度为 4 列shiftwidth=4:>>/和自动缩进都按 4 空格操作<br><code>softtabstop=4:按 Tab 键时插入/删除 4 空格,体验更自然expandtab:所有 Tab 输入均转为空格autoindent+smartindent:换行继承上行缩进,遇{}或:自动调整
即时修正已有缩进混乱
新配置只对后续输入生效。若文件已混用 Tab 和空格,或缩进不一致,可用内置命令快速清理:
- 全文重缩进(按当前 filetype 规则):
普通模式下输入gg=G(先跳首行,再格式化到末行) - 把所有 Tab 替换为 4 空格:
:%s/\t/ /g(注意 \t 后是 4 个空格) - 删掉每行末尾多余空格:
:%s/\s\+$//e
可选:保存时自动格式化(推荐 black)
Vim 内置缩进足够日常使用,但要完全符合 PEP 8(如行长度、空行、运算符前后空格等),建议集成 black:
- 终端安装:
pip install black - 在
~/.vimrc中添加:autocmd BufWritePre *.py !black -q % - 这样每次保存
.py文件,就会静默调用 black 格式化
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











