【问题标题】:How can I prevent the "You have mixed tabs and spaces. Fix this?" message?我怎样才能防止“你有混合制表符和空格。解决这个问题?”信息?
【发布时间】:2014-06-02 18:57:33
【问题描述】:

每当我将代码粘贴到我的 .cs 文件中时,我都会收到可怕的“你有混合制表符和空格。解决这个问题?”信息。它有三个选项:

Tabify
Untabify
Don't show again

我先尝试了几次“Tabify”,直到我厌倦并选择了“不再显示”;但那是一种心理——我仍然明白。我什至尝试过“Untabify”但无济于事。是否有一些设置我可以调整以防止此问题再次发生?

VisualStudio2013 tabify untabify

【问题讨论】:

  • 您是否在选择“不再显示”和消息再次出现之间编辑了文件?您是否有可能因为您的编辑而创建了一个新的“混合制表符和空格”情况?
  • 这是可能的,但我没有做任何与以往不同的事情,而且我只能通过这个项目/环境(VS 2013)得到那个消息。
  • 我怀疑这真的只是 VS2013 的事情,因为我经常遇到带有混合制表符和空格的文件,而且我使用的 Visual Studio 版本(其中几个,都在 2013 年之前)有从来没有抱怨过。
  • 在 VS2012 中遇到完全相同的问题

标签: visual-studio-2013 code-editor


【解决方案1】:

听起来你已经安装了Visual Studio Productivity Power Tools 2013。进入其设置并关闭“修复混合标签”...

Tools -> Options -> Productivity Power Tools -> Turn Extensions On/Off

如果您有默认的 VS 设置,编辑器中的选项卡将转换为空格。因此(理论上)如果您在消息出现时单击取消制表符,它应该将所有制表符转换为空格,并且下次不会出现错误。您是否与在 IDE 中具有不同选项卡设置的其他开发人员合作?

更新:在 Visual Studio 2017 及更高版本中,这是一个名为“修复混合选项卡”的独立扩展,可以从“扩展和更新”窗口(工具 > 扩展和更新)。

【讨论】:

  • 不,我是唯一一个在这个项目上工作的人;它不在源代码控制中(我只是使用一个加载项,允许我随时“备份项目”,并将其保存到 .zip 文件中)
  • LOL... 对于它的价值,我只是启用了设置,使用记事本将一堆标签放入我的文件中,然后得到提示。单击 untabify 会将所有选项卡变为空格,并且我不会再次收到该文件的消息。
  • 在这个“生产力工具”花费了我几个小时的调试时间后,它被关闭了。它“固定”了类之间的空间,将其更改为选项卡,因为布局的方式看起来就像一个空间。当然,选择那个类?不可能,因为它是“classA[tab]classB”。
  • 现在需要为 VS2017 更新。事实证明,这是它自己的扩展,现在可以禁用
  • @JoePhillips 你对 VS2017 有什么发现吗?我什至 deinstalled 扩展程序,但 仍然 收到那个烦人的消息。 (顺便说一句:卸载并重新启动后,扩展程序的设置仍然显示在 vs 设置窗口中)。
【解决方案2】:

Visual Studio 2017 更新。如果您想禁用“您有混合制表符和空格。修复此问题?”留言,你应该去

工具 → 扩展和更新...

在弹出的窗口中,找到修复混合选项卡(下图),然后根据需要单击禁用或卸载。

【讨论】:

  • 我希望它会自动完成。我将文本编辑器设置为使用制表符而不是空格,但是当我转到新行时,缩进设置为空格。
  • 也适用于 Visual Studio 2019。
  • 对于 VS 2019,它是“Extensions → Manage Extensions”。
  • 适用于 Visual Studio 2022。
【解决方案3】:

相关: 如果您确实希望 Productivity Power Tools 通知您选项卡/空格,但在单击 Fix this 后仍会立即收到消息,请查看工具 > 选项 > 文本编辑器 > [语言] > 选项卡。

将此设置为保留标签

如果您将其设置为 插入空格 并在 Power Tools 通知上单击 保留标签,则 VS 将在保存后重新插入空格,从而导致通知立即再次弹出...aa而现在你陷入了循环。

【讨论】:

    【解决方案4】:

    使用 vim run :retab 编辑文件并保存文件就完成了!

    vim file 
    :retab
    :wq
    

    使用 :retab 可以转换空格中的所有制表符,如果设置 expandtab (:set expandtab ),则表示展开空格中的所有制表符,反之亦然 (:set noexpandtab) 并且所有用空格创建的制表符都将转换为标签。

    【讨论】:

    • 或者只是在 Visual Studio 中自动格式化,它做同样的事情
    猜你喜欢
    • 2019-04-10
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2019-04-09
    相关资源
    最近更新 更多