当前位置:  开发笔记 > 开发工具 > 正文

为不同的项目设置不同的c-basic-offs

如何解决《为不同的项目设置不同的c-basic-offs》经验,为你挑选了1个好方法。

我通常使用4个空格来缩进C程序,但为了与某些开源项目保持一致,我有时需要更改为2-white-space缩进.

目前我的缩进样式在我的.emacs文件中分配

(setq c-basic-offset 4)

当我想要处理那些2-white-space缩进项目时.我必须关闭我的Emacs,修改值,然后重新开始.有没有更简单的方法来做到这一点?

非常感谢.


PS.每次打开源文件时设置c-basic-offset变量都是太多工作,是否可以根据工作目录选择不同的值?



1> Trey Jackson..:

在要自定义命名的目录中创建一个文件.dir-locals.el,并将其编辑为包含:

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

注意:这是Emacs 23.1中的新功能.

这利用了每目录本地变量.从链接中的文档:

.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"))))))

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有