我对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
不会缩进我的//
评论,也不会自动缩进。
答案 0 :(得分:8)
您可以通过在相关行上放置点并按C-c C-o
来检查和更改当前缩进的值。根据自己的喜好调整相关符号。
这不是永久性的。使用c-set-offset
中函数.emacs
的直接调用来全局更改。
简单示例:
int main() {
//
}
这是我的默认缩进。将光标移动到第2行后,我看到相关符号为comment-intro
。
使用:
(c-set-offset 'comment-intro 6)
我明白了:
int main() {
//
}
偏移量累积符号:
int main() {
//
{
//
}
}
答案 1 :(得分:1)
点击TAB仍会缩进评论行,对吗?那么你所缺少的是自动识别触发自动压痕的双斜线。这是通过(c-electric-slash)实现的。首先要确保斜杠仍然绑定到该命令:
C-h k /
(帮助击键斜线)。然后,假设c-electric-slash的文档显示出来,请阅读它以确定它在什么条件下被禁止。
答案 2 :(得分:0)
如果您想将评论放在代码范围的相同路线上,只需将以下行添加到〜/ .emacs 文件中:
(c-set-offset 'comment-intro 0)