добавление отступа энергии в списке инициализации конструктора C++

#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

9
задан ghayalcoder 18 February 2010 в 02:52
поделиться

4 ответа

Попробуйте : установите smartindent , мне пришлось сначала отключить cindent, чтобы он заработал.

1
ответ дан 3 November 2019 в 07:47
поделиться
:set cino=i0
2
ответ дан 3 November 2019 в 07:47
поделиться

Я также читал и перечитывал руководство по 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 путем ручного редактирования, как бы бесславно это ни было.

1
ответ дан 3 November 2019 в 07:47
поделиться

Я не знаю, является ли это вариантом, но вы можете взглянуть на astyle . Мы используем TextMate на работе, и схема отступов (по умолчанию?) не то, что мы хотим иногда. Но в основном он следует за отступом предыдущей строки после нажатия клавиши enter или чего-то в этом роде.

Решение, которое мы используем, заключается в том, чтобы просто отправить полный источник файла через astyle (с использованием соответствующих параметров), и это привязано к сочетанию клавиш. Это также возможно с vim.

0
ответ дан 3 November 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: