Emacs:当不在一行上的第一条语句时,如何仅通过一个选项卡缩进多行语句?

问题描述

| 我不确定如何告诉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,4); cout << \"this is \"
                \"split over two lines\";
gotoxy(5,6); cout << \"three\";
它从语句的开头而不是行的开头执行单个缩进。 我如何告诉Emacs从上一行的开头而不是该语句开始的任何列开始缩进?

解决方法

无论如何,这可能不是您要寻找的答案...无论如何,由于
gotoxy
函数显然正在对ѭ3doing做某些事情,为什么不将其包装到manip函数中并将其包含在流中,那样您将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/