这个问题困扰了我多年,我想知道是否有人有解决方案。问题是在 C++ 模式下,似乎 emacs 无法确定 <
运算符是“小于”还是“开始模板参数”,这会破坏自动缩进功能。考虑这样的事情:
bool foo() {
return X < Y &&
Y < Z;
}
Y 在右边,如果我在与 的行上运行c-set-offset
(with C-c C-o
) Y < Z
,它告诉我当前行偏移量是template-args-cont
。最糟糕的是,任何低于此的代码,包括其他功能,都会完全搞砸标签。通常我只是小心地手动空格下一个函数的开头。
编辑:要确认,以下代码缩进正确:
bool foo() {
return X == Y &&
Y == Z;
}
编辑 2:我有一些自定义样式和偏移量,但即使使用 -q 启动 emacs 以忽略我的 .emacs 文件也会出现同样的问题。我目前正在使用版本:
GNU Emacs 24.1.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
of 2012-06-10 on bob.porkrind.org
在 mac OS X 10.8 上,但我确定我在 ubuntu 上看到过同样的问题,但我必须仔细检查版本。
有没有人找到解决方案?Corey 发现添加括号(X < Y)
是一种解决方法。