在Visual Studio Code中使用Format Code命令时,它不尊重我的缩进设置(“editor. exe”)。tabSize": 2).它使用的是4的标签大小。知道为什么会这样吗?

谢谢!


当前回答

正如一些答案所暗示的那样,有一些设置,如“detectIndentation, insertSpaces和tabSize”,它们都控制缩进的工作方式,但大多数人都没有提到(包括最上面的答案),这些设置可以被你的用户设置覆盖,在这种情况下,更改它们并不重要。

如果你想知道如何检查你的vscode的情况,只要重新检查你是否有下面的东西写在括号旁边的设置名称:

如果是这种情况,只需单击User链接并在新打开的用户设置选项卡中更改设置,您应该会看到您的更改生效。

其他回答

我有一个“。editorconfig”文件在父目录(ionic项目)的值“indent_size = 2”,它确实覆盖了我为我的工作空间选择的任何值! 我一改,问题就解决了。

在我的情况下,VScode使用更漂亮的包来格式化我的代码。

我是如何解决的:

右击代码-> Format Selection With -> Change Default Formatter -> TypeScript和Javascript语言特性

像往常一样在VScode中设置选项卡首选项。

我有一个类似的问题-无论我做什么,我不能让tabsize为2,即使它是在我的用户设置-这最终是由于EditorConfig扩展。它在当前工作目录中查找.editorconfig文件,如果没有找到(或者找到的文件没有指定root=true),它将继续查找父目录,直到找到一个。

结果发现,在我把所有新代码项目放在其中的dir的父目录中有一个.editorconfig,它指定tabSize为4。删除该文件解决了我的问题。

我认为vscode默认使用autopep8来格式化.py。

PEP 8——Python代码风格指南| Python.org

根据这个网站,下面可以解释为什么vscode总是使用4个空格。

每个缩进层使用4个空格。

如果@Maleki的答案不适合你,检查一下你的项目文件夹中是否有。editorconfig文件。

例如,Angular CLI会生成一个这样的新项目

# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false

更改这里的indent_size是必需的,因为它似乎会覆盖你的.vscode工作区或用户设置中的任何内容。