38

VS2013 为 C++ 添加了自动格式化。我个人对自动格式化的看法是它最终对开发人员有害,但我必须接受并非所有人都同意。让我烦恼的是,我似乎无法完全禁用自动格式化。我在工具->文本编辑器->C/C++->格式->常规下的每个复选框都没有选中,当我输入:

void f ()

VS2013 将其替换为

void f()

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

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

  1. 我在具有不同代码标准的多个项目中工作
  2. 我不相信自动格式化,所以我只想让它不碍事

我只是希望 VS 不要自动修改我的代码。

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

4

7 回答 7

39

您可以通过从工具菜单转到选项对话框,选择页面并取消选中那里的所有框来关闭自动 C / C++ /C# 代码格式化。关闭所有自动格式化设置后,您仍然可以手动格式化。Text EditorC / C++ / C#FormattingGeneral

在此处输入图像描述

于 2013-08-19T22:52:38.887 回答
8

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

于 2013-08-18T20:16:36.460 回答
7

我也遇到了这个问题,取消选中格式选项中的所有复选框并没有帮助。

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

在我的情况下,这个问题可以通过转到“视觉辅助选项”->“更正”并取消选中“粘贴后格式化”复选框来解决。

于 2014-11-04T09:53:01.883 回答
3

这是 VS 2013 beta 中的一个错误,它无法完全关闭,请参阅 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. 工具/导入和导出设置... - 您可以导出某个项目的特定设置,然后再导入。这将保存.vssettingsXML 格式文件。如果它只是一个特定的文件类型,那么它可能只有几千字节长。不幸的是,这需要手动步骤。如果这些设置可以从解决方案配置文件甚至项目配置文件中被覆盖,最好的情况是它们可以是其中的一部分。
  3. 请注意,如果您真的在项目中并行工作并同时打开 Visual Studio,则第二点是有问题的。在这种情况下,最终将保存我认为上次关闭的 VS 实例的设置。

为解决方案保存不同的自动格式可能是下一个版本的功能请求(当然不会进入 VS 2013)。我通常遇到的是制表符/空格缩进行为差异,这是项目样式中最常见的差异。缩进也可以为大多数文件类型单独配置,但就像你的情况一样,项目可能会有所不同,然后就会变得烦人。

于 2013-08-19T23:44:19.603 回答
3

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

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

在此处输入图像描述

于 2015-07-28T05:05:37.463 回答
1

要关闭自动支撑完成,请转到:

工具 > 选项 > 文本编辑器 > 所有语言 > 常规 > 自动大括号完成

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

于 2015-07-30T15:20:37.163 回答
0

去:

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

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

于 2013-12-25T18:21:53.703 回答