现在,标准的emacs缩进的工作原理如下:
switch (cond) {
case 0: {
command;
}
break;
}
我想休息一下;与案件排列。
此外,某处是否有c-set-offset命令列表?
答案 0 :(得分:22)
自定义缩进的最大帮助(我发现)是弄清楚cc模式用于缩进当前行的内容。这就是 Cc Co aka Mx c-set-offset 可以做到的 - 它允许你自定义语法元素的偏移量,它会显示你使用了什么元素对于当前的行!
以下是如何自定义它。将光标移动到break;
行。
C-c C-o RET 0 RET
此时,您的代码将缩进为:
switch (cond) {
case 0: {
command;
}
break;
}
有关偏移的文档,请查看变量'c-offsets-alist
C-h v c-offsets-alist RET
同样,您可以将其添加到.emacs:
(setq c-offsets-alist '((statement-case-intro . 0)))
自定义缩进的文档是here,值得一读。有很多方法可以做到这一点,因此阅读手册是值得的(如果你想要非默认缩进)。这里是指向cc模式中使用的所有syntactic symbols的指针。
答案 1 :(得分:0)
对我来说,让php模式switch语句正确缩进需要:
(c-set-offset (quote brace-list-entry) 2 nil)
(c-set-offset (quote case-label) 2 nil)
但正如其他人所说,C-c C-o是你的朋友......