Emacs:如果不是第一个语句在一行上,如何只用一个选项卡缩进多行语句?

时间:2011-04-19 01:39:33

标签: emacs indentation

我不知道如何告诉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 个答案:

答案 0 :(得分:1)

这可能不是您正在寻找的答案......无论如何,因为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/