5

在 emacs 中,我使用 CMa 和 CMe 去 C++ 代码中函数的开始/结束。但是,如果函数包含在命名空间中(它只是跳转到命名空间外壳的开头或结尾),则此功能将不再起作用。有没有人对此有很好的解决方案?

4

2 回答 2

8

这是一个已知的错误。它已在三天前发布的 Emacs 24.1 中修复。得到它。不幸的是,该修复从未被向后移植,而且这种情况不太可能很快发生。

于 2012-06-13T14:30:53.990 回答
2

获得修复该问题的 Emacs 24.1 是最好的课程。如果您卡在旧版本的 Emacs 上,一个常见的解决方法是使用预处理器宏。

#define NAMESPACE_BEGIN(X) namespace X {
#define NAMESPACE_END      }

NAMESPACE_BEGIN(tools)

class Foo {
    //...
};

NAMESPACE_END

这样做的一些从业者还有其他原因。我个人喜欢它如何阻止默认的 Emacs 设置缩进命名空间的代码。

于 2012-06-13T14:48:08.560 回答