9

现在标准的 emacs 缩进如下:


switch (cond) {
case 0: {
  command;
}
  break;
}

我想要休息;与案例对齐。

另外,某处是否有 c-set-offset 命令的列表?

4

2 回答 2

23

自定义缩进的最大帮助(我发现)是弄清楚 cc-mode 使用什么来缩进当前行。这就是C-c C-oakaM-x 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)))

自定义缩进的文档在这里,值得一读。有很多方法可以做到这一点,所以阅读手册是值得的(如果你想要非默认缩进)。这里有一个指向cc-mode 中使用的所有语法符号的指针。

于 2009-06-05T18:30:34.160 回答
1

对我来说,让 php-mode switch 语句正确缩进需要:

      (c-set-offset (quote brace-list-entry) 2 nil)
      (c-set-offset (quote case-label) 2 nil)

但正如其他人所提到的,Cc Co 是你的朋友......

于 2015-11-06T17:14:47.247 回答