11

我对 Emacs 不太了解,但经过一番谷歌搜索后,我.emacs将文件编辑为如下:

(setq c-default-style "bsd" c-basic-offset 4)

我的目标是使用 4 间隔制表符获得 Allman 风格的缩进。它按预期工作,但现在我的//评论没有缩进我的代码。在我更改它之前,当我输入 时//,它会自动缩进以与函数中的其余代码保持一致。如何让 Emacs 自动缩进//评论?

我试过添加c-indent-comments-syntactically-p 1到上面的.emacs文件中,但这并没有改变它......

例如:

int main()
{
    // I'd like this line to be auto-indented to match the block
    for (int i = 0; i < 10; ++i)
    {
        // And this line to be auto-indented to match the block
        doStuff();
    }
}

目前,TAB不会缩进我的//评论,也不会自动缩进。

4

3 回答 3

8

您可以通过将点放在相关行上并按 来检查和更改当前缩进的值C-c C-o。根据自己的喜好调整相关符号。

这不会是永久性的。c-set-offset使用您的函数的直接调用.emacs来进行全局更改。

简单的例子:

int main() {
  // 
}

这是我的默认缩进。将光标移动到第 2 行后,我看到相关符号是comment-intro.

使用:

(c-set-offset 'comment-intro 6)

我得到:

int main() {
        //
}

偏移量跨符号累积:

int main() {
        //
  {
          //
  }
}
于 2012-11-26T21:47:11.103 回答
1

点击 TAB 仍然会缩进您的评论行,对吗?那么你缺少的是触发自动缩进的双斜杠的自动识别。这是由(c-electric-slash)实现的。首先确保斜杠仍然绑定到该命令:( C-h k /关于击键斜杠的帮助)。然后,假设出现了 c-electric-slash 的文档,请阅读它以了解它在什么条件下被禁止。

于 2012-11-26T21:54:47.850 回答
0

如果您想将您的评论放在代码范围的相同对齐上,只需将以下行添加到您的~/.emacs文件中:

(c-set-offset 'comment-intro 0)
于 2015-02-04T08:58:20.790 回答