Visual Studio 缩进设置为两个空格而不是四个空格制表符

Posted

技术标签:

【中文标题】Visual Studio 缩进设置为两个空格而不是四个空格制表符【英文标题】:Visual Studio indentation set to two spaces instead of four space tab 【发布时间】:2018-08-28 22:44:38 【问题描述】:

我刚刚在这里打开了一个旧项目。似乎有人更改了缩进。它设置为 2 个空格,而不是 4 个空格。

我尝试过的:

    我尝试执行 Cntrl K + D 但这并没有将它改回正确的缩进。 我删除了_ReSharper.Caches 目录,刚刚创建了一个新目录,没有改变缩进。

当这些都不起作用时,我开始将我的视觉工作室中的设置与两种不同的解决方案进行比较。

Resharper 设置矛与广告相同的是 Visual Studio 中的设置。

重新锐化设置

Visual Studio 设置

这让我觉得这一定是在项目文件之一或其他东西中?如果我的视觉工作室中的设置不是问题,那么覆盖选项卡的内容是什么?

值得注意的是,当项目加载时,我发誓它会以适当的缩进方式加载,然后在最后一秒重新格式化。不确定这是否重要,但项目是 .net core 1.0,解决方案中有三个项目,所有三个项目似乎都受到了影响。

希望有人能解决这个问题,这样读起来真的很难。

【问题讨论】:

项目目录或任何父目录下是否有.editorconfig文件? 如果缩进是空格,则无法更改它。查看源代码管理中的文件历史记录,找出罪魁祸首! @yaakov 是的,在解决方案目录中 @PhillipNgan 这个项目的破坏性更大,我可以责备它,但说开发人员不再在这里工作。 @yaakov 它被设置为 2 我现在将它们设置为四个 Cntrl + K + d 作品。但我认为我将不得不在每个文件上都这样做:(请随意发布这个作为答案。 【参考方案1】:

Visual Studio 可能正在使用项目目录(或任何父目录)中的 .editorconfig 文件,该文件允许在代码库中保持一致的代码样式,而不管用户设置如何。

Visual Studio 应在 IDE 窗口的左下角区域指出这一点。

如果是这种情况,您需要修改 .editorconfig 并定义新样式,以便更改自动格式化工具的配置。

【讨论】:

这仍然意味着我现在需要重新格式化所有文件,但是很好的解决方案我以前从未见过该文件。你是对的。它说“此文件类型的用户首选项被此项目编码转换覆盖。”在您发布此内容之前,我什至没有注意到它。【参考方案2】:

正如人们在答案和 cmets 中所说,这可能是 .editorconfig。在我们的案例中,开发人员开始使用 VS Code,升级到 VS 2017 时,Visual Studio 也接受这些文件。

这是文件中自动添加的值:

[*]
end_of_line = crlf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

通过添加这个我们可以正常使用 C# 并且想要使用 VS Code 的开发人员可以继续这样做:

[*.cs]
indent_style = space 
indent_size = 4

https://developercommunity.visualstudio.com/content/problem/44231/cant-set-indent-level-to-4-spaces-in-vs-2017.html

【讨论】:

以上是关于Visual Studio 缩进设置为两个空格而不是四个空格制表符的主要内容,如果未能解决你的问题,请参考以下文章

在粘贴时,Visual Studio 2015将单词转换为空格

在 Visual Studio Code 中保存时避免自动缩进

Visual Studio Code - 将空格转换为制表符

如何在 Visual Studio 2017 中自定义折叠

使用 Visual Studio 2015 禁用注释的自动缩进

如何在 Visual Studio Code 中隐藏缩进指南?