#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;
};
Привет все,
У меня есть немного проблемы в добавлении отступа gvim в списке инициализации конструктора в C++. Я использую cindent в .gvimrc, и я неспособен решить эту проблему даже после изменения моего .gvimrc неоднократно.
Может некоторая доброжелательная душа давать мне некоторый метод для установки этого. Я попытался изменить cinoptions, а также cinwords, но ничто действительно не помогло.
Я выделил проблему добавления отступа во фрагменте кода, обеспеченном выше.
Спасибо за Ваше терпение
Отношения lali
Попробуйте : установите smartindent
, мне пришлось сначала отключить cindent, чтобы он заработал.
Я также читал и перечитывал руководство по vim на
http://vimdoc.sourceforge.net/htmldoc/indent.html#cinoptions-values
Это довольно сложная проблема. Ближе всего я смог подобраться, используя
:set cino=g3,h3,i0
То есть, отступите объявления областей видимости (private, public, etc) на 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,i можно добиться довольно близкого результата.
Пожалуйста, прокомментируйте, если это поможет или если я натолкнул вас на какие-либо идеи. Возможно, сообщение об ошибке - лучший способ решить эту проблему. Хотя обходным путем является переопределение cindent путем ручного редактирования, как бы бесславно это ни было.
Я не знаю, является ли это вариантом, но вы можете взглянуть на astyle . Мы используем TextMate на работе, и схема отступов (по умолчанию?) не то, что мы хотим иногда. Но в основном он следует за отступом предыдущей строки после нажатия клавиши enter или чего-то в этом роде.
Решение, которое мы используем, заключается в том, чтобы просто отправить полный источник файла через astyle (с использованием соответствующих параметров), и это привязано к сочетанию клавиш. Это также возможно с vim.