如何修复emacs对C++初始化程序的缩进?

3

对于具有带冒号的初始化程序的C++类定义,Emacs不能正确缩进。我认为这是因为许多情况下带有冒号的行被左缩进了。

我想要修复这个问题。

以下是我所说的示例。

EMACS将代码缩进如下:

class demo {
    int x;
    demo(){
    }
 demo(int y):x(y){
    };
};

但是它应该像这样缩进:

class demo {
    int x;
    demo(){
    }
    demo(int y):x(y){
    };
};

有没有办法修复这个行为?可能我们需要一些Elisp代码...

谢谢!


1
@nightcracker:我认为在这里提出Emacs问题是可以的。此外,这很容易有涉及elisp编程的解决方案,而且毫无疑问与编程有关。 - Tikhon Jelvis
1个回答

5

Emacs(至少版本23)在C模式下不会这样做,但在C ++模式下会这样做,因为在C中冒号前面的部分只能是标签。确保您处于C ++模式( M-x c ++-mode )。


你是对的!.h文件默认为C模式;我在我的.emacs文件中将其更改为C++模式。谢谢! - vy32
另一个选项是在C++头文件中使用.hpp。 - Philipp
2
哦,我觉得.hpp文件非常恶心。 - vy32

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接