2009-12-01 40 views
2

我通常使用4個空格來縮進C程序,但爲了與某些開源項目保持一致,有時我必須更改爲2-white-space縮進。爲不同的項目設置不同的c-off-off

目前我縮進風格是在我的.emacs分配與

(setq c-basic-offset 4) 

文件,當我想在這些2空白縮進項目。我必須關閉我的Emacs,修改這個值,然後重新開始。有沒有更簡單的方法來做到這一點?

非常感謝。


PS。 每次打開源文件時設置c-basic-offset變量的工作量太大,可以根據工作目錄選擇不同的值嗎?

回答

9

創建要自定義命名.dir-locals.el目錄中的文件,編輯,使其包含:

((c-mode . ((c-basic-offset . 4)))) 

注:這是在Emacs 23.1新功能。

這利用了Per-Directory Local Variables。從鏈接中的文檔:

.dir-locals.el文件應該 包含一個特殊構造的列表。 此列表將Emacs模式名稱 (符號)映射爲alists;每個alist 指定在相應模式打開時使用 的變量值。 特殊模式名稱'nil'意思是 其alist適用於任何模式。 而不是模式名稱,您可以 指定一個字符串,該字符串是項目的 目錄的子目錄 的名稱;那麼相應的 alist適用於該子目錄中的所有文件。

這裏有一個 .dir-locals.el文件的例子:

((nil . ((indent-tabs-mode . t) 
      (tab-width . 4) 
      (fill-column . 80))) 
    (c-mode . ((c-file-style . "BSD"))) 
    (java-mode . ((c-file-style . "BSD"))) 
    ("src/imported" 
    . ((nil . ((change-log-default-name . "ChangeLog.local")))))) 
+0

+1爲鏈接 – 2009-12-01 06:24:13

+0

這真的很有幫助,謝謝。 – ZelluX 2009-12-01 07:03:42

相關問題