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++) 的错误列表中删除重复项