【问题标题】:Why do I keep getting mixed tabs and spaces in a Visual Studio 2010 C# code window?为什么在 Visual Studio 2010 C# 代码窗口中不断出现混合制表符和空格?
【发布时间】:2011-03-14 14:45:22
【问题描述】:

在过去的一个小时左右,我刚刚在 Web 应用程序中处理 C# 文件 (Global.asax.cs),并且已经向我显示了“tabify”或其他大约四次的提示。每次我选择制表并保存文件时,但在之后的某个看似随机的时间点,我再次收到提示。

我正在使用 ReSharper,但是当我在家编写代码时不会发生这种情况,也使用 ReSharper。只在工作中。

【问题讨论】:

  • 您的制表符缩进设置是否设置为使空格实际上可以完全转换为制表符?
  • 我现在也在我的一个文件上得到了这个。我今天每小时一到两次。甚至在文件被添加到源代码管理之前。
  • @LostHobbit 这很重要,因为烦人的对话不断弹出并打断我的流程。

标签: visual-studio visual-studio-2010


【解决方案1】:

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

Power Tools for Visual Studio 2010

Power Tools for Visual Studio 2012

Power Tools for Visual Studio 2013

Power Tools for Visual Studio 2015

【讨论】:

  • 我宁愿保留警告并摆脱混合的制表符和空格。
  • @ProfK 您再次收到提示的随机点是否也会发生在其他人签入对此文件的更改之后(如果您使用源代码管理)?也许你和其他人在 VS 中有不同定义的制表符空间。
  • 很难看出这是如何高效的。使用工具 + 选项、文本编辑器关闭选项卡。它们在上个世纪被用来节省字节。
  • @Hans,使用选项卡的效率与这里完全无关。
  • 标签的生产力已经得到很好的讨论,标签的优点不仅仅是数据大小。选项卡具有可配置的宽度,供从事同一项目的具有不同缩进偏好的人使用。如果每个人都将他们的 VS 配置为使用不同数量的空格而不是制表符,那么代码会变得一团糟,但是如果每个人都使用制表符并将制表符宽度配置为他们的视觉偏好,那么代码就会保持干净,每个人都会得到他们的蛋糕并吃掉它。再说一遍,使用空格的好处是什么?
【解决方案2】:

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

Tools/Options/ -> Text Editor/All Languages/Tabs,选择“Keep Tabs”选项。

【讨论】:

  • 这确实是问题的正确答案以及@ProfK 想要达到的结果。
【解决方案3】:

选择“取消制表符”选项,因为 VS 默认为空格,而不是制表符。如果你下次添加行时选择“Tabify”,VS会使用空格,你会一遍又一遍地看到提示。

【讨论】:

    【解决方案4】:

    Resharper 对 Visual Studio 使用单独的 tab/space 设置。在Resharper 选项中,选中“General Formatter Style -> How to align when tabs are used for indents”。当resharper 正在格式化代码(例如重构等)并且默认为“用户空间”时使用此设置。

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

    【讨论】:

    • 不错的选择(View Whitespace 之一)! +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多