2009-06-05 85 views
8

眼下标准的Emacs缩进就像下面:Emacs的压痕


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

我要休息;与案例一致。

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

+1

你知道的支架案件和休息是不必要的,除非你需要1)在案件中声明变量和2)分支到案件中,不是吗? – dmckee 2009-06-05 18:29:57

+0

是的,我喜欢。习惯的力量。 – 2009-06-05 18:52:55

回答

22

定制缩进的最大帮助(我发现)找出cc模式用于缩进当前行的方式。这是什么C-C C-O又名M-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))) 

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

0

对于我来说,让PHP模式switch语句正确缩进要求:

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

但正如其他人所说,抄送有限公司是你的朋友.....