Я также прочитал и перечитал руководство vim на
http://vimdoc.sourceforge.net/htmldoc/indent.html#cinoptions-values
Это довольно сложная проблема. Самое близкое, что я мог получить, это использовать
:set cino=g3,h3,i0
То есть, декларации отступа области (приватной, публичной и т. Д.) На 3, отступа 3 пробела после декларации области, и больше не отступать конструктор
Что привело к
#include
using namespace std;
class Example
{
public:
Example(int a,int b,int c):m_a(a),m_b(b),m_c(c)
{ // Wrong indentation here due to the colon in above line, { should be under E
printf("\nThe 3 argument constructor invoked\n");
} // Wrong indentation again</p>
<pre><code> private:
int m_a;
int m_b;
int m_c;
};
Это не совсем то, что вы хотели, но экспериментируя с g, h, я могу подойти довольно близко.
Пожалуйста, прокомментируйте, если это поможет, или если у меня возникли какие-либо идеи. Возможно, сообщение об ошибке - лучший способ решить эту проблему. Хотя обходной путь - переопределить cindent путем ручного редактирования, столь же бесславного, как это.