【发布时间】:2011-04-19 12:54:57
【问题描述】:
我不知道如何告诉 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 从上一行的开头开始缩进,而不是从语句开始的任何列开始?
【问题讨论】:
-
为什么要让 Emacs 做错事?它应该使延续显然是前一个 statement 的延续,而不仅仅是前一个 line。
-
@drysdam:对与错是相当主观的——在这种情况下,gotoxy() 命令应该被视为同一语句的一部分。无论如何,换行的全部原因是将其保持在 80 列之内,因此将下一行缩进 70 个空格几乎不值得一开始就将其换行。在你不得不再次打破它之前,你只会得到 10 个字符。我宁愿用“错误”缩进将它分成两行,而不是用“正确”缩进分散在 10 多行中。
-
你能把多语句行分组吗?这样,他们仍然在一起,与程序的其他部分分开。你有什么特殊的理由每行写多个语句吗?
-
@vpit3833:通常我会将它们分成几段,但在这种特殊情况下,将它们放在同一行上更容易维护。这很重要,因为如果忘记了我在这里命名的函数
gotoxy,日志文件就会损坏。通过将它们放在同一行上,它足以让gotoxy呼叫永远不会被遗忘!正如@Lindydancer 建议的那样,我现在正在使用更好的方法来实现这一点,所以这只是为了在维护遗留代码的同时减少我的挫败感!
标签: emacs indentation