Emacs: Как сделать отступ для многострочного оператора только на одной вкладке, если это не первый оператор в строке? - PullRequest
1 голос
/ 19 апреля 2011

Я не уверен, как настроить Emacs для отступа кода, подобного следующему, как показано: (ширина вкладки 2)

gotoxy(1, 2); cout << "one";
gotoxy(3, 4); cout << "this is "
  "split over two lines";
gotoxy(5, 6); cout << "three";

Переменная 'Statement-Cont' установлена ​​в '+', что указывает на то, что я хочу сделать один отступ, но в итоге получаю следующее:

gotoxy(1, 2); cout << "one";
gotoxy(3, 4); cout << "this is "
                "split over two lines";
gotoxy(5, 6); cout << "three";

Выполняет одиночный отступ с начала оператора вместо начала строки.

Как я могу сказать Emacs начинать отступы с начала предыдущей строки, а не с какого столбца, с которого начинался оператор?

1 Ответ

1 голос
/ 19 апреля 2011

Это может быть не тот ответ, который вы ищете ... В любом случае, поскольку функция gotoxy явно что-то делает с cout, почему бы вам не обернуть это в манипуляцию и включите его в поток, таким образом, вы будете 1) один оператор в каждой строке, который может быть правильно вставлен, 2) получите возможность иметь более длинные строки, так как вам не нужно останавливаться на каждом gotoxy, и 3) дает возможность применять gotoxy в любом потоке.

Например:

cout << gotoxy(1, 2) << "one";
cout << gotoxy(3, 4) << "this is "
  "split over two lines";
cout << gotoxy(5, 6) << "three";

Или еще проще:

cout << gotoxy(1, 2) << "one"
     << gotoxy(3, 4) << "this is "
  "split over two lines"
     << gotoxy(5, 6) << "three";

Кстати, оба раздела были написаны с отступом в Emacs.

Подробнее о функциях управления потоками вы можете прочитать здесь: http://www.devarticles.com/c/a/Cplusplus/Custom-Stream-Manipulation-in-C/2/

...