Visual Studio 2010 中的 C++ 访问修饰符自动缩进慢慢让我发疯 - 可以更改吗?

Posted

技术标签:

【中文标题】Visual Studio 2010 中的 C++ 访问修饰符自动缩进慢慢让我发疯 - 可以更改吗?【英文标题】:C++ access modifier auto indentation in Visual Studio 2010 slowly driving me crazy - can it be changed? 【发布时间】:2011-08-18 03:04:29 【问题描述】:

在 Visual Studio 中编写 C++ 时,它坚持在访问修饰符上给我这些可怕的缩进 - 如果有人真的喜欢这种方式,我表示哀悼;)(开个玩笑!)

public class MyClass

public:
   MyClass();
   ~MyClass();
   int wowAnInt();

不用说,我想要这个:

public class MyClass

    public:
       MyClass();
       ~MyClass();
       int wowAnInt();
 

有什么方法可以使用任何东西(我有 ReSharper 和 Highlighter)或者香草 VS 来实现这一点?

【问题讨论】:

我喜欢这种方式! (我敢说,其实这种风格很常见也很流行……) @Oli 你可能是对的,我可能只需要解决这个问题......但是括号和正下方的文本看起来很奇怪......对 C# 来说感觉不自然呃喜欢我!只是想我会提出这个问题。 :) 我同意奥利的观点;但是,当一个工具坚持以特定方式格式化事物并且它不是喜欢的方式时,我也觉得很烦人。即使我的偏好与一般用法不一致。 按回车后按Ctrl+Z。 @OliverCharlesworth 你会发现在一个函数中有 2000 行也很常见;并不意味着每个人都想使用它!这就是为什么几乎所有其他选项都是配置,例如为 开始新行等每个人都有自己的喜好! 【参考方案1】:

使用内置 Visual Studio 编辑器设置最接近的方法是将缩进模式从“智能”更改为“块”(工具 -> 选项 -> 文本编辑器 -> C/C++ -> 选项卡 ->缩进)。

当你这样做时,你可以随意缩进任何东西,你只是失去了“自动缩进”。基本上,每当您按 [enter] 时,新行将缩进与前一行相同数量的制表位/空格,并且不会自动重新格式化行以使它们对齐。

【讨论】:

但是当我复制/粘贴时它似乎仍然重新格式化 谢谢,这行得通!十年后,VS 仍然没有用于可见性标签缩进的那个额外的小复选框......伤害侮辱,发现与 C# 不同,使用 C++ 它允许在块打开之前配置自动空间(( int fn() ... vs int fn() ... )) 这让 me 发疯了。 @ProQ 改变 TextEditor > C/C++ > CodeStyle > Formatting >When I Paste to "Do nothing" 有帮助吗? 我现在用的是VS Code,很遗憾我无法回答这个问题【参考方案2】:

有两个选项可以更改,这有助于使代码看起来像您想要的那样。 (来自 Python,如果冒号后没有缩进,它真的困扰着我。)

我确实使用了 James McNellis's answer 并将其从“智能”更改为“阻止”,但我不确定这有多大帮助。

Tools -> Options -> Text Editor -> C/C++ -> Formatting -> Indentation -> Indent Access Specifiers 下有一个设置可以缩进访问说明符,但不会缩进它们后面的内容。

我还在Tools -> Options -> Text Editor -> C/C++ -> Formatting -> General -> When I paste 下选择了“什么都不做”,这样它就不会仅仅通过复制/粘贴来改变事情。

这不是一个完美的解决方案,但至少更接近一点。

【讨论】:

以上是关于Visual Studio 2010 中的 C++ 访问修饰符自动缩进慢慢让我发疯 - 可以更改吗?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 中的 C++ 访问修饰符自动缩进慢慢让我发疯 - 可以更改吗?

Visual Studio 2010中的Visual C++如何编译、连接和运行?

C++ 程序未在 Visual Studio 2010 中读取绝对路径 [关闭]

从 Visual Studio 2010 (C++) 的错误列表中删除重复项

将 C++ 项目从 Visual Studio 2008 转换为 Visual Studio 2010

无法使用 Visual Studio 2010 调试 C++ BHO DLL