19

我经常发现自己处于像其他代码一样缩进预处理器伪指令(例如#if缩进像if)的情况。它seems legal,它的common sense that it's sometimes a good thing,但Visual不会轻松。Visual C++ 2010中的预处理器伪指令缩进

有没有一种方法可以防止Visual C++ 2010编辑器将代码粘到左边,每次我无意中按下#?并且不要使用自动缩进(CTRL + K,CTRL + F)打破预处理器指令缩进?或者甚至更好,处理预处理器指令一样?

+2

由于这个原因,我开始使用外部编辑器编辑重的预处理器代码... – ybungalobill

回答

13

我的做法是保持#在第一列和缩进随后的字,如:

#ifdef FIRST 
# include "first.h" 
#else 
# include "second.h" 
#endif 
+2

除了你不能选择多行和(Shift +)选项卡它们。 – ybungalobill

+1

+1,具有良好的预处理器风格。 Boost使用这种风格,它更清晰的是哪些行是预处理器指令,同时保持分支缩进 – Pyrce

+0

+1,因为它确实是一个很好的,经常看到的解决方法。但我仍然觉得适当的缩进支持会让我更开心。所以我会拭目以待我是否会得到其他答案。 –

10

在Visual Studio 2010页中的选项(工具 - >选项)

转到文本编辑器 - > C/C++ - >标签

在缩进选择Block而不是智能。

这将防止#键强制您到达行首,但是如果您使用Ctrl + K Ctrl + F,它仍然会应用智能格式并移除选项卡。

编辑:这也将禁用自动缩进/ unindenting在其他地方。谨防。

2

解决方法:当你第一次键入#和Visual Studio中删除您的缩进,按CTRL +ž撤消自动格式。

8

某些时候visualstudio(在vs2015中签入)获取的选项>文本编辑器> c/C++> formatting> indentation>预处理器指令的位置。选择'留下缩进'。该示例看起来不像你想要的,但它的工作原理,只是尝试。

+2

看起来这个设置是在VS2015中添加的。 –

+0

这显然是现在接受的答案。 :) 虽然如果[Ctrl] + [K] [Ctrl] + [F]使用此选项将会很好。 :( – GazB