【问题标题】:Change indentation with Emacs minor mode使用 Emacs 次要模式更改缩进
【发布时间】:2014-09-12 01:27:03
【问题描述】:

我有一个 CS 类需要(或至少强烈建议)8 个空格用于 C++ 缩进。我通常使用 2,所以这对我来说完全不同。

直到最近我才刚刚切换我的.emacs 中的缩进代码并运行eval-buffer,但这对于可编程编辑器来说似乎是一个糟糕的解决方案。

所以我想知道:我该如何创建一个次要模式(或者有更好的功能吗?)?我希望能够使用 M-x comp-mode 或类似的东西来启用它。

我见过次要模式,但它们似乎更侧重于键映射。也许我正在查看错误的 Emacs 功能。

也许我可以扩展 C++ 模式以创建具有不同缩进设置的comp-mode

【问题讨论】:

    标签: c++ emacs minor-mode


    【解决方案1】:

    您可以使用次要模式执行此操作,但更简单的解决方案是使用directory variables。在包含您的课程作业的目录中创建一个名为 .dir-locals.el 的文件,并在其中放入如下内容:

    ((c++-mode . ((indent-tabs-mode . nil)
                  (c-basic-offset . 8))))
    

    【讨论】:

    • 这是否偶然适用于递归?如果是这样,那该死的!
    • 是的,通常它适用于所有子目录,但如果您愿意,您可以为各个子目录指定不同的规则。开箱即用,.dir-locals.el 设置在远程编辑时不适用,例如使用 TRAMP。手册has more details。请注意,我刚刚更新了 c++-mode 的 sn-p 而不是 c-mode
    • 哇,这太完美了。谢谢!
    • EmacsWiki 也有一些关于目录(和其他)局部变量的有用说明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多