如何强制 Emacs 重置缩进?

如何强制 Emacs 重置缩进?

我希望 emacs 在文件的某个特定点自动将其缩进级别重置为 0。

例如:因为我有嵌套的嵌套的嵌套的-..命名空间,所以在C++文件中我想不是在命名空间内缩进整个主体。

#include <vector>    
namespace qw {
namespace impl {

using std::vector;

class index_impl {
    vector<string> entries;
public:
    void add(const string &normalized, const string& original);
    string getBestMatch(const string& normalized) const;
};

} // namespace impl_multimap
} // namespace qw

当然,这只在嵌套命名空间中主要实现一个类的情况下才有用。在头文件中,这会造成混淆。所以我想最好的解决方案是添加一个特殊的注释或其他东西。

#include <vector>    
namespace qw {
namespace impl {
// -*- indent: 0 -*-

using std::vector;
...

任何其他想法也可以。

答案1

原来的来源

请将此行放入您的 emacs 文件中:

(c-set-offset 'substatement-open 0)

详细方法:

  1. 转到要缩进的行

  2. 请输入 CC CO(非零)并按 Enter 键

  3. 现在输入“0”,然后按 Enter 键,不再有额外的缩进

  4. 请按 Tab 键重新缩进该行

  5. 将来的“{”将具有正确的制表符设置,直到您重新启动 emacs。

另外,你可以将其放入你的 emacs 文件中:

(c-set-offset 'SYNTACTIC-SYMBOL OFFSET)

查看 lisp 代码。

学习在 emacs 之外格式化 C++ 源代码这里

相关内容