回答有些晚了,但我刚刚解决了相同的问题...
有多种方法可以控制这个问题。我进行了相当多的尝试才将其纠正。对我来说,以下第3点是最终的技巧,让它正常工作了。在那之前,我注意到编辑器加载时为4个空格,但会跳回2个空格。现在保持为4个空格。
需要检查的一些事项:
1:VS Code 配置(设置和工作区,可以为系统范围配置或仅限于当前工作区): 检查是否已设置:
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.detectIndentation": false
还有语言特定的设置(可选):
"[javascript]": {
"editor.tabSize": 4
},
"[typescript]": {
"editor.tabSize": 4
}
2:是否有任何扩展程序可能会影响缩进 - 有人报告JS-CSS-HTML也可以配置该设置。
3:你的工作区中是否有.editorconfig文件?如果有,请检查那里的设置。例如,Angular会创建一个并配置indent_size:
# Editor configuration, see http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false
大多数答案都集中在第一点,但对我来说,最后一步是使VS Code正常工作的重要步骤。
这个Stack Overflow在不同的答案中处理了上述所有问题: Visual Studio Code: format is not using indent settings
.editorconfig
搞得很头疼,感谢你结束了我的无头苍蝇追逐。 - Dagrooms.editorconfig
对我来说是个问题,尤其是全局的 ~/.editorconfig
文件被用来代替项目中缺失的文件。 - carmatPrettier
。实际上,它会忽略@Oskar答案中列出的所有设置。"prettier.tabWidth": 4,
"prettier.useTabs": true
然后只需转到您的文件并按下Ctrlk,Ctrld,正确的缩进应该会被应用。
基本上,有不同的方法可以通过此对话框进行操作,但如果您进入选项卡模式,然后切换回基于空格的缩进,它将允许您选择要使用的空格数量。
注意:这个扩展程序EditorConfig for VS Code会干扰 vscode 的标签和缩进设置。它虽然默认安装,但却是一个噩梦。禁用它将解决你所有的问题。
我发现 Python 的另一个问题是 VS Code 使用 autopep8。无论我调整哪个设置,VS Code 似乎都会忽略 2 个空格的设置。如果你想要 2 个空格而不是 4 个空格 - 解决方法是将以下代码添加到你的 settings.json
文件中。
"python.formatting.autopep8Args": [
"--indent-size=2",
"--ignore E121"
]
顺便提一下,您可以通过打开命令面板(在Mac上是⌘-shift-p)并输入>Python: Show Language Server Output
来查看您的autopep8参数,然后切换到“Python”日志视图。
这似乎是一个常见问题。请参阅:VS Code Python autopep8 does not honor 2 spaces hanging indentation