【问题标题】:Setting c-basic-offset per directory in Emacs在 Emacs 中为每个目录设置 c-basic-offset
【发布时间】:2011-12-08 21:58:05
【问题描述】:

我有一个使用 2 空格缩进的 C 项目(在 /projects/c 中)和一个使用 4 空格缩进的 C++ 项目(在 /projects/cpp )。我不知道如何让 Emacs 根据我打开的文件的位置自动设置正确的间距。

我可以告诉它对 .cpp 文件使用 c++-mode(4 个空格),但 .h 文件(在 cpp 项目中)仍然默认为 c-mode(2 个空格)。

我可以在我的 .emacs 文件中添加一些内容,以根据目录将 .h 文件缩进不同数量的空格或更改模式吗?

【问题讨论】:

    标签: c++ c emacs


    【解决方案1】:

    目录局部变量:
    http://www.emacswiki.org/emacs/DirectoryVariables

    您可以使用 .dir-locals.el 文件,也可以使用 dir-locals-set-class-variablesdir-locals-set-directory-class 函数在 .emacs 文件中完全配置它。

    【讨论】:

    • 完美!这正是我所需要的。
    【解决方案2】:

    将这样的内容放在文件的第一行,其语言无法从扩展名中推断出来

    // This may look like C code, but it really is -*- mode: c++ -*-
    

    【讨论】:

      【解决方案3】:

      .h 文件更改为.hpp 是否有效?

      【讨论】:

        猜你喜欢
        • 2012-12-07
        • 1970-01-01
        • 2011-11-06
        • 2012-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多