如何更改 VSCode 缩进4个空格而不是默认2?

我在 VS 代码中应用了以下设置,得到了4个空格缩进。
但是当我打开一个新文件时,它总是切换回右下角的2。

如果我点击右下角并将设置改回4,
VSCode 仍然会变回2,并且仍然使用2-space 自动缩进。
Alt + Shift + F

我错过了什么?

enter image description here

57152 次浏览

回答得有点晚,不过同样的问题已经解决了。

很多东西都能控制它。它也花了我相当多的实验得到纠正。对我来说,下面的第三点是最后的诀窍。在此之前,我注意到编辑器载入4,但跳回到2个空格。现在它停留在4。

有些事情需要检查:

1: VS 代码配置(设置和工作区,您可以为系统范围的配置或仅为当前工作区设置这些设置) : 检查你是否已设定:

"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.detectIndentation": false

和语言特定设置(可选) :

"[javascript]": {
"editor.tabSize": 4
},
"[typescript]": {
"editor.tabSize": 4
}


2: 是否有任何扩展可以影响缩进-> 人们已经报告 JS-CSS-HTML 也配置设置。


3: 有没有一个。在您的工作区中编辑配置文件?如果是这样,请检查那边的设置。例如,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 代码正常工作很重要。

这个 Stack Overflow 在不同的答案中处理以上所有问题: VisualStudio 代码: format 没有使用缩进设置

我在 VisualStudio 设置(1.31)中修复了它

转到: sets > workspace sets > Text Editor

取消“检测缩进”选项以保持默认设置不变。

小心,这个扩展 用于 VS 代码的 EditorConfig会干扰 vscode 选项卡和缩进设置。它默认安装,但它是一个噩梦。关闭它会解决你所有的问题。

和以前的答案稍有不同,我的答案是 有一个文件的类型缩进错误,我只想纠正这个文件

(如果您一定要知道: 这个 Python 脚本最初是一个文本文件,其中包含一些查询。我从 psql 的 -E \d回波看 Postgres 模式得到的)。

无论如何,这份文件现在是蟒蛇。Py 文件,带有2个空格缩进。不应该通过修改一般 vscode 设置来修复。

我所做的:

  • 点击底部状态栏点说 2 Spaces
  • 在对话框中选择 Convert Indentation to Tabs。现在它显示 Tab size 2
  • 再次点击状态栏上显示 Tab size 2的地方
  • 选择 Convert Indentation to Spaces。现在对话框更改为建议缩进大小: 选择 2。选择 4代替或任何大小您想要的。
  • 成交

enter image description here

通过这个对话框基本上有不同的方法,但是如果进入制表符模式,然后切换回基于空格的缩进,它将允许您选择想要使用的空格数量。

在许多情况下,是 Prettier导致了这种情况。事实上,它只是忽略了@Oskar 的答案中列出的所有设置。

所以需要明确地覆盖它:

"prettier.tabWidth": 4,
"prettier.useTabs": true

然后转到你的文件,点击 CtrlkCtrld,正确的缩进应该被应用。

参见 Prettier 没有按指定缩进

我在 Python 中发现的另一个问题是 VS Code 使用 autopep8。不管我调整了哪个设置,VS 代码似乎忽略了2个空格设置。如果你想要2个空格而不是4个-修正方法是将这个空格添加到你的 settings.json

    "python.formatting.autopep8Args": [
"--indent-size=2",
"--ignore E121"
]

顺便说一下,您可以通过打开命令面板(mac 上为 something-shift-p)并输入 >Python: Show Language Server Output,然后切换到查看“ Python”日志来查看 autopep8参数。

这似乎是一个常见的问题