最简单的:
最初的问题归结为:
许多(如果不是大多数)emacs c 缩进样式自己在一行上进行注释,例如
// ...
缩进以匹配周围的代码。
我想让看起来像 //+ 或 //- 的注释比周围的代码缩进一个或多个缩进设置。
我通常认为相同缩进级别的注释适用于下一行代码,而额外缩进级别的注释适用于前面的代码行。但这只是风格。
简短的:
是否有(合理的标准)emacs 设置来获得 C/C++ 注释的不同缩进,这取决于注释是否与下一行相关联(在这种情况下,我希望它为语法适当缩进)或注释是否与上一行(在这种情况下,我希望它缩进一个额外的级别)?
例如
int
foo()
{
// this comment is for the variable bazz below
int bazz;
//- this comment is for the variable bazz,on the line above.
//- I want it indented an extra level, which I will do by hand here.
// this comment is for the next variable, biff
int biff;
int example; /* comment
* on multiple lines
* but this can be too much indented
*/
int example_of_a_really_long_name_that_can_produce_excessive_indentation; /* comment
* on multiple lines
* but this can be too much indented
*/
}
以//和//-开头的评论几乎是我想要的。// 与周围的代码一起缩进。这就是emacs给我的。
我希望 //- 缩进一个额外的缩进级别。或者 //+,或者其他,如果有约定的话。听起来像是一个正则表达式的工作。
我提供了我知道如何处理 // 和 / 的示例。/注释分散在多行中,但可以过度缩进。
细节:
我现在正在安装 emacs 24.1 - 或者至少我希望我正在安装它,工作中的系统有非常老旧的发行版。但是,如果某些东西适用于较旧的 emacs,例如 21.4.1,我会更高兴 - 避免必须在许多不同系统上安装 emacs 的麻烦。
=================================
顺便说一句,我已经知道 c-indent-comment-syntactically 和 cc-mode.el 的大部分内容。
特别是,c-indent-comment-syntactically 给了我:
int
foo()
{
// this comment is for the variable bazz below
int bazz;
//- this comment is for the variable bazz,on the line above.
//- I want it indented an extra level, which I will do by hand here.
// this comment is for the next variable, biff
int biff;
int example; /* comment
* on multiple lines
* but this can be too much indented
*/
int example_of_a_really_long_name_that_can_produce_excessive_indentation; /* comment
* on multiple lines
* but this can be too much indented
*/
if( foo )
// comment
bar();
if( foo ) {
// comment
bar();
}
}
这不是我想要的。我希望 //- 注释行缩进一个额外的缩进级别。
哎呀,为什么不喜欢elisp:
/// <-- 从第 0 列开始
// 语法缩进(与下一行代码有关)
或者可能是 //^(^ 表示“以上”。
//- 或 //^ - 缩进一个额外的缩进级别(与前一行代码有关。