C++ 如何让Emacs用代码缩进//注释?
我对Emacs了解不多,但在谷歌搜索了几次之后,我将我的C++ 如何让Emacs用代码缩进//注释?,c++,c,emacs,C++,C,Emacs,我对Emacs了解不多,但在谷歌搜索了几次之后,我将我的.Emacs文件编辑为: (setq c-default-style "bsd" c-basic-offset 4) 我的目标是使用4个间隔的制表符进行Allman样式的缩进。它按预期工作,但现在我的/注释没有与我的代码缩进。在我更改此项之前,当我键入/时,它会自动缩进,以便与函数中的其余代码保持一致。如何让Emacs自动缩进/注释 我已经尝试将c-indent-comments-syntactically-p1添加到上面的.emacs文
.Emacs
文件编辑为:
(setq c-default-style "bsd" c-basic-offset 4)
我的目标是使用4个间隔的制表符进行Allman样式的缩进。它按预期工作,但现在我的/
注释没有与我的代码缩进。在我更改此项之前,当我键入/
时,它会自动缩进,以便与函数中的其余代码保持一致。如何让Emacs自动缩进/
注释
我已经尝试将c-indent-comments-syntactically-p1
添加到上面的.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();
}
}
intmain()
{
//我希望这一行自动缩进以匹配块
对于(int i=0;i<10;++i)
{
//该行将自动缩进以匹配块
doStuff();
}
}
当前,
选项卡
不会缩进我的/
注释,也不会自动缩进。您可以通过将点放在相关行上并按C-C-o
来检查和更改当前缩进的值。根据您的喜好调整相关符号
这不会是永久的。在.emacs
中直接调用函数c-set-offset
,进行全局更改
简单的例子:
int main() {
//
}
这是我的默认缩进。将光标移动到第2行后,我看到相关的符号是注释简介
使用:
(c-set-offset 'comment-intro 6)
我得到:
int main() {
//
}
偏移量在符号之间累积:
int main() {
//
{
//
}
}
点击TAB仍然会缩进你的评论行,对吗?那么您缺少的是自动识别触发自动缩进的双斜杠。这是通过(c-electric-slash)实现的。首先确保slash仍然绑定到该命令:
C-hk/
(关于击键斜杠的帮助)。然后,假设显示了c-electric-slash的文档,阅读它以了解在什么条件下它被禁用。如果您想将注释放在代码范围的同一对齐上,只需将以下行添加到~/.emacs文件中:
(c-set-offset 'comment-intro 0)
但是如果是嵌套块呢?@Cornstalks偏移量相对于周围偏移量。我加了一个例子。太棒了。考虑到我上面的
.emacs
小文件,什么是正确的添加方法?将(setq c-default-style“bsd”c-basic-offset 4(c-set-offset“comment intro 4))
放在我的文件中。emacs
文件会使emacs带着错误呕吐:错误类型参数:symbolp,(c-set-offset(引用comment intro)4)
setq
和c-set-offset
应该是同一级别的两个单独的LISP表达式,像这样:(setq c-default-style“bsd”c-basic-offset 4)(c-set-offset注释介绍4)
@Francesco:太好了,谢谢!我添加了(c-set-offset'comment intro 0)
,现在效果很好。不。选项卡不再缩进注释。我将编辑我的问题以提及这一点。