Emacs:当不是一行上的第一条语句时,如何仅通过一个制表符缩进多行语句?

Emacs:当不是一行上的第一条语句时,如何仅通过一个制表符缩进多行语句?,emacs,indentation,Emacs,Indentation,我不知道如何告诉Emacs缩进代码,如下所示:(选项卡宽度为2) gotoxy(1,2);这可能不是你想要的答案。。。无论如何,由于gotoxy函数显然在做一些事情来cout,为什么不把它包装成一个manip函数并包含在流中,这样你就可以1)每行一条语句,可以正确缩进,2)可以有更长的行,因为你不必在每行gotoxy处停下来,3)它使您能够在任何流上应用gotoxy 例如: cout << gotoxy(1, 2) << "one"; cout << goto

我不知道如何告诉Emacs缩进代码,如下所示:(选项卡宽度为2)


gotoxy(1,2);这可能不是你想要的答案。。。无论如何,由于
gotoxy
函数显然在做一些事情来
cout
,为什么不把它包装成一个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
函数显然在做一些事情来
cout
,为什么不把它包装成一个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为什么要Emacs做错误的事情?它应该使continuation显然是上一条语句的延续,而不仅仅是前一行。@drysdam:对与错是相当主观的-在这种情况下,gotoxy()命令应该被视为同一条语句的一部分。无论如何,换行的全部原因都是为了将行限制在80列以内,因此,通过将下一行缩进70个空格,很难首先将其拆分到新行上。你只需要输入10个字符就可以再次打断它。我宁愿用“错误”的缩进把它分成两行,也不愿用“正确”的缩进把它分成10多行。你能把多语句行分成几段吗?这样,他们仍然呆在一起,与项目的其他部分分开。你有什么特别的理由每行写一条以上的语句吗?@vpit3833:通常我会把它们分成段落,但在这种特殊情况下,代码更容易维护,因为它们在同一行。这一点很重要,因为如果我在这里命名的函数忘记了,日志文件就会损坏。让他们站在同一条线上,这足以让人永远不会忘记
gotoxy
调用!正如@Lindydancer所建议的,我现在正在使用更好的方法来实现这一点,所以这只是为了在维护遗留代码的同时降低我的沮丧程度!为什么您希望Emacs做错误的事情?它应该使continuation显然是上一条语句的延续,而不仅仅是前一行。@drysdam:对与错是相当主观的-在这种情况下,gotoxy()命令应该被视为同一条语句的一部分。无论如何,换行的全部原因都是为了将行限制在80列以内,因此,通过将下一行缩进70个空格,很难首先将其拆分到新行上。你只需要输入10个字符就可以再次打断它。我宁愿用“错误”的缩进把它分成两行,也不愿用“正确”的缩进把它分成10多行。你能把多语句行分成几段吗?这样,他们仍然呆在一起,与项目的其他部分分开。你有什么特别的理由每行写一条以上的语句吗?@vpit3833:通常我会把它们分成段落,但在这种特殊情况下,代码更容易维护,因为它们在同一行。这一点很重要,因为如果我在这里命名的函数忘记了,日志文件就会损坏。让他们站在同一条线上,这足以让人永远不会忘记
gotoxy
调用!正如@Lindydancer所建议的,我现在正在使用更好的方法来实现这一点,所以这只是为了在维护遗留代码的同时降低我的沮丧程度!好建议。事实上,我已经在其他一些项目中完成了这项工作,正如您所建议的那样,它工作得很好,但不幸的是,我目前正在维护一个旧的代码库,现在没有动机重写它的大部分:-)好的建议。事实上,我已经为其他一些项目完成了这项工作,正如您所建议的那样,它工作得很好,但不幸的是,我目前正在维护一个旧的代码库,现在没有动机重写它的大部分:-)
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";