Vim:C++嵌套初始化列表缩进问题

Vim: indentation of C++ nested initialization list problem

我不想对初始化列表和范围声明进行特殊缩进,所以我在我的 .vimrc set cinoptions=i-s,g0(根据 this issue)。它可以解决问题:

class Proletariat {
public:
  Proletariat();

private:
  bool freedom;
  int workShift;
}

Proletariat::Proletariat():
freedom(false),
workShift(12) {
  pogrom();
}

但在代码被包含到某个块中之前它工作正常,例如:

namespace ClassWar {
  class Proletariat {
  public:
    Proletariat();

  private:
    bool freedom;
    int workShift;
  }

  Proletariat::Proletariat():
    freedom(false),
    workShift(12) {
      pogrom();
    }
}

如您所见,范围声明仍未缩进,但初始化列表缩进了。

我知道可以使用续行选项 +N,但它(显然)打破了续行缩进。

那么这种行为的原因是什么以及如何改变它?

Vim 和 Neovim 对此的处理方式相同。

嗯,好像是 incorrect behavior