2009-06-05 82 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) 

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