VSCode自动格式化时如何保留多行空行?
解决VSCode格式化时保留多行空行的问题
VSCode默认格式化器针对不同语言有不同的配置项,以下是针对C++、Shell和Python的具体设置方法:
C++(Clang-Format)
默认格式化器是Clang-Format,需通过项目根目录下的.clang-format文件配置:
- 在项目根目录创建
.clang-format文件,添加以下内容:MaxEmptyLinesToKeep: 10 # 可根据需求调整数值,代表允许保留的最大连续空行数 - 该设置会让Clang-Format保留最多10行连续空行,超过的部分会被压缩到10行。
Python
根据默认使用的格式化器不同,配置方式略有区别:
若使用autopep8
在VSCode的settings.json中添加:
"python.formatting.autopep8Args": ["--ignore=E302"]
- E302是PEP8中要求顶级代码块间保留2行空行的规则,忽略该规则后autopep8不会压缩多行空行。
若使用yapf
在settings.json中添加:
"python.formatting.yapfArgs": ["--style={blank_line_count_limit: 10}"]
blank_line_count_limit设置允许保留的最大连续空行数。
注意:Black格式化器
Black默认强制压缩空行为1行,且无配置项可修改,若需保留多行空行建议切换至autopep8或yapf。
Shell脚本(shfmt)
默认格式化器是shfmt,可通过VSCode配置调整:
在settings.json中添加:
"shellformat.flag": "-i 4 --keep-blank-lines"
--keep-blank-lines参数会让shfmt保留原有的多行空行,-i 4代表设置4空格缩进(可按需调整)。
通用设置提示
- 若需全局生效,可修改用户级
settings.json;仅针对当前项目则修改工作区级settings.json。 - 修改配置后需重启VSCode或重新加载窗口(
Ctrl+Shift+P→ 选择"Reload Window")使设置生效。
内容的提问来源于stack exchange,提问作者furynerd
相关产品推荐
相关产品推荐

