为什么在Visual Studio 2010 C#代码窗口中为什么总是混用制表符和空格?


87

最近一个小时左右,我刚刚在Web应用程序中处理C#文件(Global.asax.cs),并且向我显示了提示“制表”或大约四次的提示。每次我选择将其制成表格并保存文件时,但在以后看似随机的时刻,我再次得到提示。

我正在使用ReSharper,但是当我在家也使用ReSharper进行编码时,这不会发生。仅在工作中。


3
是否设置了制表符缩进设置,以便实际上可以将空格完全转换为制表符?
用户

我现在也将其保存在我的一个文件中。我今天每小时要得到一到两次。甚至在将文件添加到源代码管理之前。
sindre j 2011年

12
@LostHobbit这很重要,因为令人讨厌的对话不断弹出并打断了我的流程。
ProfK 2012年

Answers:


146

您是否正在使用Productivity Power Tools VS 2010扩展程序?如果是这样,请转到Tools-> Options->并选择Productivity Power Tools。您可以在此处将选项关闭Fix Mixed Tabs。这将关闭此警告。

Visual Studio 2010的强大工具

Visual Studio 2012的强大工具

Visual Studio 2013的强大工具

Visual Studio 2015的强大工具


20
我希望保留警告,并摆脱混合的制表符和空格。
ProfK 2011年

2
@ProfK还会在其他人签入对此文件的更改之后(如果您使用的是源代码控制)碰巧再次提示您的随机点吗?也许您和其他人在VS中定义的制表符空间不同。
Justin Saraceno

7
很难看出这是如何产生成果的。使用工具+选项,文本编辑器关闭选项卡。他们在上个世纪用于保存字节。
汉斯·帕桑

6
@Hans,使用选项卡的效率在这里根本不相关。
ProfK 2011年

35
制表符的生产率已被充分讨论,并且制表符的优点不仅仅在于数据大小。对于在同一项目上具有不同缩进首选项的人,选项卡具有可配置的宽度。如果每个人都将自己的VS配置为使用不同数量的空格而不是制表符,那么代码将变得一团糟,但是如果每个人都使用制表符并将制表符宽度配置为他们的视觉偏好,那么代码将保持干净,每个人都会吃蛋糕。再者,使用空格的好处是什么?
TheXenocide

60

混合的选项卡和空格可能来自Visual Studio文本编辑器设置。您可以决定是否要Visual Studio在此处插入空格或制表符:

在工具/选项/->文本编辑器/所有语言/选项卡中,选择“保留选项卡”选项。


6
这确实是对所问问题和@ProfK想要实现的结果的正确答案。
现实提取器

11

由于VS默认为空格而不是制表符,因此请选择“取消制表”选项。如果您下次选择添加行时选择“ Tabify”,则VS将使用空格,并且您将一遍又一遍地看到提示。


9

Resharper使用单独的选项卡/空间设置来创建Visual Studio。在Resharper选项中,选中“常规格式化程序样式->使用制表符缩进时如何对齐”。在resharper格式化代码(例如重构等)时使用此设置,默认为“用户空间”。

另外,在“ 编辑->高级 ”菜单中,有一个“查看空白”选项(Ctrl + E,S)可能有用!


不错的选择(View Whitespace一个)!+1
Ignacio Soler Garcia
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.