在emacs中,ESS / Stata模式错误地缩进跟在运算符结尾的行后面的行。它似乎错误地将这些行解释为多行命令。
例如:
gen foo = 1
/* generate another variable */
gen bar = 1
“gen bar = 1”这行代码不应该缩进。看起来EMACS将注释中的反斜杠解释为运算符,并认为此行代码跨越了两行。
实际上,Stata中的多行命令有三个反斜杠,没有三个反斜杠的换行表示语句结束。例如,以下缩进是正确的:
gen bar = 1
gen ///
foo = 1
有没有什么我可以放在我的.emacs文件中来纠正这种行为?我不想完全放弃自动缩进 - 它对除了/* 这样的注释之外的所有内容都非常有效。
谢谢,
Pnj
C-h f ess-continued-statement-p
检查它是否已加载。如果您没有看到文档字符串,则修改后的代码不会被评估。这将表明在eval-after-load
命令中运行了某些内容,例如引用了错误的模式。我将在上面添加一个文档字符串。 - Tylerrun-mode-hooks
是在Emacs 22中引入的(发布于2007年),而针对你的问题的修复已经添加到了ESS版本5.3.11中(发布于2009年)。你的软件已经有些老了! - Tyler