2009-12-01 41 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

相关问题