如何在VS2013 for C ++中关闭自动格式化?

时间:2013-08-18 10:19:46

标签: c++ visual-studio visual-studio-2013

VS2013为C ++添加了自动格式化。我个人对自动格式化的看法是,它最终对开发人员有害,但我必须接受并非所有人都同意。我的错误是我似乎无法完全禁用自动格式化。我取消选中了Tools-> Text Editor-> C / C ++ - > Formatting-> General下的每个复选框,当我输入时:

void f ()

VS2013将其替换为

void f()

这不是这个特定项目的代码标准,这意味着我必须返回并插入一个空格。还有其他一些我必须与VS作斗争的例子。

我不想更改间距设置,因为

  1. 我在不同代码标准的多个项目中工作
  2. 我不相信自动格式化,所以我只是想让它离开我的方式
  3. 我只是希望VS不自动修改我的代码。

    PS。我不反对VS可以格式化代码,但我想手动调用

7 个答案:

答案 0 :(得分:37)

您可以转到工具菜单中的选项对话框,选择 文本编辑器,关闭自动C / C ++ / C#代码格式 C / C ++ / C#格式化常规 页面,并取消选中那里的所有框。当所有自动格式设置都关闭时,您仍然可以手动格式化。

enter image description here

答案 1 :(得分:8)

我知道这不是您正在寻找的答案,但如果您转到工具>您可以保留void f ()格式。选项>文本编辑器> C / C ++>格式化>间距和间距用于函数parantheses ,选中在函数名称和参数列表的左括号之间插入空格选项。

答案 2 :(得分:6)

我也遇到了这个问题,取消选中格式化选项中的所有复选框都无济于事。

事实证明,这是由Whole Tomato Software插件“Visual Assist X”中的一个选项引起的。

在我的情况下,可以通过转到“Visual Assist Options” - >“Corrections”并取消选中Checkbox“粘贴后格式化”来解决此问题。

答案 3 :(得分:3)

这是VS 2013测试版中的一个错误,无法完全关闭,请参阅FuleSnabel提交的问题:http://connect.microsoft.com/VisualStudio/feedback/details/797716/turning-off-auto-formatting-for-vs2013-c-only-seems-to-partial-disable-auto-formatting。 一些可能的解决方法:

  1. 如果您只是看一些具有不同/怪异风格的项目:如果发生了不需要的自动格式化,那么您可以执行一个撤消步骤,这应该只撤消操作的自动格式化部分而不是您的贡献。幸运的是,这两个(或者有时更多的自动格式化步骤)可能没有组合成一个命令,可能是出于这个原因:你可以返回并覆盖它。如果这种情况一直发生,这很烦人。您可以配置行为以匹配您的样式,但您说您的项目具有不同的代码样式。
  2. 工具/导入和导出设置... - 您可以导出特定项目的特定设置,然后再导入。这将保存.vssettings XML格式文件。如果它只是一个特定的文件类型,那么它可能只有几千字节长。不幸的是,这需要手动步骤如果可以从解决方案配置文件甚至项目配置文件中覆盖这些设置,那么最好的可能是它们的一部分。
  3. 请注意,如果您在项目中真正并行同时打开Visual Studio,则第二点是有问题的。在这种情况下,设置将最终保存在我认为最后关闭的VS实例的内容中。
  4. 为解决方案保存了不同的自动格式可以是下一个版本的功能请求(当然不会进入VS 2013)。我经常遇到的是标签/空格缩进行为的差异,它是项目风格中最常见的差异。缩进也可以针对大多数文件类型单独配置,但在您的情况下,项目可能会有所不同,然后它会变得烦人。

答案 4 :(得分:3)

请记住,resharper还可以覆盖缩进/格式设置。你可以通过这样做来关闭它

ReSharper - >选项 - >环境 - >编辑 - >编辑器行为 - >在大括号上自动格式化(取消选中)。

enter image description here

答案 5 :(得分:1)

转到:

工具 - >选项 - >文字编辑器 - > C / C ++ - >格式化 - >间距

然后取消选择或选择与您正在编写的代码类型相关的框。

答案 6 :(得分:1)

要关闭自动大括号完成,请转到:

工具>选项>文本编辑器>所有语言>一般>自动撑杆完成

...然后取消选中"自动大括号完成"。