#include<iostream>
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
private:
int m_a;
int m_b;
int m_c;
};
大家好,
我在C ++的构造函数初始化列表中的gvim缩进中遇到了一些问题。 我在.gvimrc中使用了cindent,即使多次改变我的.gvimrc,我也无法解决这个问题。
一些仁慈的灵魂能否给我一些方法来设置它。我曾尝试改变cinoptions和cinwords,但没有任何帮助。
我在上面提供的代码段中突出显示了缩进问题。
感谢您的耐心
此致 拉利
答案 0 :(得分:2)
:set cino=i0
答案 1 :(得分:1)
尝试:set smartindent
,我必须先禁用cindent才能让它正常工作。
答案 2 :(得分:1)
我还阅读并重新阅读了
中的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
private:
int m_a;
int m_b;
int m_c;
};
这不是你想要的,但试验g,h,我可以非常接近。
如果这有帮助或者我引发了任何想法,请发表评论。也许错误报告是解决此问题的最佳方法。虽然一种解决方法是通过手动编辑来覆盖cindent,但这是不光彩的。
答案 3 :(得分:0)
我不知道这是否是一个选项,但您可以查看astyle。我们在工作时使用TextMate,并且(默认?)缩进方案不是我们想要的。但主要是按下输入后的前一行缩进。
我们使用的解决方案是简单地通过astyle(使用适当的选项)管理文件的完整源代码,并将其绑定到快捷键。这对于vim来说也是可能的。