Visual Studio代码:格式不使用缩进设置

时间:2016-03-27 19:44:36

标签: visual-studio-code

在Visual Studio代码中使用Format Code命令时,它不遵循我的缩进设置("editor.tabSize": 2)。它使用的标签大小为4。任何想法为什么会发生这种情况?

谢谢!

15 个答案:

答案 0 :(得分:175)

用于格式化的空格数取自其他位置。我正在使用1.0版本,这就是我所做的修复它(我假设您使用的是空格而不是制表符):

在右侧的编辑器底部单击“Spaces:#”:

status bar on the right

然后会出现一个菜单。选择“缩进使用空格”:

select indentation type

最后,您可以选择希望文件缩进的空格数。

select tab size

下次格式化文件时,您应该能够获得配置的间距。

答案 1 :(得分:67)

Visual Studio Code检测默认情况下的当前缩进并使用它 - 忽略.editorconfig

同时将“editor.detectIndentation”设为 false

(文件 - >首选项 - >设置)

screenshot

答案 2 :(得分:36)

如果@ 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工作区或用户设置中的任何内容。

答案 3 :(得分:7)

对于我自己来说,此问题是由使用prettier VSCode插件而在工作区中没有更漂亮的配置文件引起的。

禁用插件可解决此问题。可能还可以通过更漂亮的配置来修复它。

答案 4 :(得分:5)

您很可能安装了一些格式扩展程序,例如JS-CSS-HTML Formatter

如果是这种情况,则只需打开Command Palette,键入“Formatter”并选择Formatter Config。然后根据需要修改"indent_size"的值。

P.S。编辑后不要忘记重新启动Visual Studio代码:)

答案 5 :(得分:3)

如果您使用的是插件(在我的情况下为Vetur,针对vue.js),则这些插件可能会设置自己的标签格式设置。

打开设置,搜索“格式”,然后浏览可能覆盖全局标签格式的相关插件设置。这对我有用;一旦我更新了Vetur标签设置以适应我的偏好(在我的情况下为4尺寸标签),格式化.vue文档便开始正常工作:

enter image description here

答案 6 :(得分:2)

如果你是从谷歌来到这里因为标签不是缩进,这也可能是因为“标签移动焦点”已启用。它位于右下角,如果你有一个足够大的显示器,你可能会错过它,尽管它被突出显示。

enter image description here

单击绿色区域或按Ctrl + M使其停止。我不确定它是否可以被完全禁用,然后我再也不知道为什么代码编辑器会想要缩进像缩进这样的东西。

答案 7 :(得分:2)

我遇到了类似的问题 - 无论我做了什么,我都无法将标签固定在2,即使它在我的用户设置中 - 最终归因于EditorConfig extension。它在您当前的工作目录中查找.editorconfig文件,如果找不到(或找不到的文件root=true),它将继续查看父目录,直到它找到一个。

原来我在dir的父目录中有一个.editorconfig我将所有新代码项目都放入其中,并指定了tabSize为4.删除该文件修复了我的问题。

答案 8 :(得分:2)

以下设置解决了我的问题

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,

答案 9 :(得分:1)

我有时会遇到同样的问题。 VSCode会突然失去理智,完全忽略我告诉它的任何缩进设置,即使它整天都在缩进同一个文件。

我将editor.tabSize设置为2(以及editor.formatOnSave设置为true)。当VSCode搞砸了一个文件时,我使用编辑器底部的选项来改变缩进类型和大小,希望能有效,但VSCode坚持实际使用缩进大小为4。

修复?重启VSCode。它应该返回,缩进状态显示错误(在我的情况下,4)。对我来说,我必须更改设置,然后保存以实际进行更改,但这可能是因为我的editor.formatOnSave设置。

我还没弄清楚它为什么会发生,但对我而言,通常在我编辑JS文件中的嵌套对象时。它会突然在对象内部进行非常奇怪的缩进,即使我已经在该文件中工作了一段时间并且它一直在缩进。

答案 10 :(得分:1)

正如一些答案所暗示的那样,有一些设置,如“detectIndentation、insertSpaces 和 tabSize”,它们都控制着缩进的工作方式,但其中大多数没有提到(包括最佳答案)是这些设置可以被覆盖由您的用户设置在这种情况下更改它们无关紧要。

如果您想知道如何检查您的 vscode 是否是这种情况,只需重新检查您是否在设置名称旁边的括号中写了以下内容:image highlighting text in parentheses next to Tab Size setting

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

答案 11 :(得分:0)

VSCode插件Vetur;用于VueJS应用程序的设置对我来说是最重要的。

将vetur.format.options.tabSize设置为我喜欢的空格数即可。

答案 12 :(得分:0)

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

"PEP 8 -- Style Guide for Python Code | Python.org"

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

  

每个缩进级别使用4个空格。

答案 13 :(得分:0)

禁用所有插件(然后启用一个并验证)

答案 14 :(得分:0)

还要确保您的工作区设置没有覆盖您的用户设置。用户界面并不十分明显,您正在编辑的设置是什么,即使工作区设置胜过用户设置,“文件>首选项>设置”仍默认为用户设置。

enter image description here

您还可以直接编辑Workspace设置:/.vscode/settings.json