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

问题描述 投票:100回答:11

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

谢谢!

visual-studio-code
11个回答
182
投票

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

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

status bar on the right

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

select indentation type

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

select tab size

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


1
投票

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

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

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

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


0
投票

VSCode插件Vetur;用于VueJS应用程序的覆盖了我的设置。

将vetur.format.options.tabSize设置为我的首选空格数使其工作。


0
投票

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

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

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

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


77
投票

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

将“editor.detectIndentation”也设置为false

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

screenshot


38
投票

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


10
投票

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

禁用插件修复了问题。它也可能通过依赖更漂亮的配置来修复。


6
投票

下面的设置解决了我的问题

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

5
投票

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

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

附:编辑后别忘了重启Visual Studio代码:)


4
投票

如果您正在使用插件(在我的案例中为Vetur,对于vue.js),这些可能会设置自己的标签格式设置。

打开您的设置,搜索“格式”并查看可能覆盖全局选项卡格式的相关插件设置。这对我有用;一旦我更新了Vetur选项卡设置以匹配我的偏好(在我的情况下为4个大小的选项卡),格式化.vue文档开始正常工作:

enter image description here


2
投票

如果你是从google来到这里因为标签不是缩进,这也可能是因为“Tab Moves Focus”已启用​​。它位于右下方,如果你有一个足够大的显示器,你可能会错过它,尽管它被突出显示。

enter image description here

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


2
投票

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

事实证明我在dir的父目录中有一个.editorconfig我把我所有的新代码项目放入其中,它指定了tabSize为4.删除该文件修复了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.