假设我的光标位置位于右侧的大括号右侧,如下所示:
现在,如果按Enter键,我希望它将光标自动对齐两个标签,就像break
语句一样。但它的作用是:
它添加了一个荒谬的五个标签!知道Visual Studio有一公吨的设置,我导航到Tools::Settings::Text Editor::C/C++::Formatting::Indentation
,并看到以下窗口:
但是,在任何组合中更改突出显示的选项实际上根本不会影响缩进!其他选项似乎都不适用于切换语句,因此我不知道该怎么做。如何在不禁用自动格式化的情况下使其缩进5个空格?
我可能会补充说,当我在大括号的末尾按Enter时,它不仅会放置5个标签,而且会发生任何自动格式化事件。因此,当我在一行的末尾添加一个分号时,即使我之前将它们取出,也会放置5个标签。
答案 0 :(得分:3)
现在这可能有点晚了,但是如果其他人发现了这个问题:它似乎是一个Visual Studio错误,你可能正在运行VS2K13的新安装版本,名为REL。
在http://www.microsoft.com/en-us/download/details.aspx?id=44921下载更新4对我来说很有帮助。
答案 1 :(得分:2)
大括号({
和}
)正在抛出自动压头,它会缩进大括号之外的一个标签。
在开关声明中没有非法的支持,但它们通常对你没有任何好处。除非您需要它来确定变量声明的范围,否则只需删除花括号即可。您将获得相同的代码流,并且您不会混淆自动压缩器。
修改强> 想想看,你可以通过简单地将支架移动到一个新线来解决这个问题。这不一定很可怕 - 它突出显示你正在使用大括号。
case SDLK_g:
{
// etc
break;
}
答案 2 :(得分:1)
我进入了VS2013并创建了一个新项目并尝试制作一个非常简单的switch
,但它的格式正确,即使是花括号。你能发布那组代码吗?
我能想到的另一件事可能就是如何设置大括号,但我不知道为什么会影响它。 (我也不认为C ++确实存在这样的设置...)除此之外,你可以尝试不使用大括号,因为你在case
语句中,你在技术上并不需要它们。
除了在安装过程中可能发生的事情。所以重新安装也是一种选择。
编辑:
此外,可以使用它并完成代码,然后完成后只需突出显示行并取消缩进([SHIFT] + [TAB])它们回到正确的位置。