如何让Emacs用我的代码缩进我的//注释?

Cor*_*lks 11 c c++ emacs

我对Emacs了解不多,但经过一些谷歌搜索,我编辑了我的 .emacs文件如下:

(setq c-default-style "bsd" c-basic-offset 4)
Run Code Online (Sandbox Code Playgroud)

我的目标是通过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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

pmr*_*pmr 8

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

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

简单的例子:

int main() {
  // 
}
Run Code Online (Sandbox Code Playgroud)

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

使用:

(c-set-offset 'comment-intro 6)
Run Code Online (Sandbox Code Playgroud)

我明白了:

int main() {
        //
}
Run Code Online (Sandbox Code Playgroud)

偏移累积符号:

int main() {
        //
  {
          //
  }
}
Run Code Online (Sandbox Code Playgroud)

  • `setq`和`c-set-offset`应该是同一级别的两个独立的LISP表达式,如下所示:`(setq c-default-style"bsd"c-basic-offset 4)(c-set-offset'评论介绍4)` (2认同)