【问题标题】:Emacs indent template class/functionsEmacs 缩进模板类/函数
【发布时间】:2010-11-24 09:06:11
【问题描述】:

有人知道如何禁止 emacs 在模板子句后缩进函数或类的名称吗?

目前的结果是:

template <typename T>
    class A {
    /* ... */
    };

我想要的地方:

template <typename T>
class A {
/* ... */
};

非常感谢您的帮助。

编辑 1 我使用 c++-mode 和 java 作为 c++ 的缩进样式。我以这种方式自定义了 c-offset-alist:

(custom-set-variables 
;;
'(c-offsets-alist (quote ((case-label . +) (innamespace . 0))))

【问题讨论】:

  • 你在 .emacs 中写过什么吗?我得到了你默认要求的那个。我启动了 emacs -Q。
  • @vpit3833 我编辑了问题以使情况更清楚

标签: c++ templates emacs


【解决方案1】:

转到class 行并点击TAB 以执行(未经请求的)缩进。
然后按 Control-CControl-Oto display the indent mode fortopmost-intro-cont`

ENTER,即可更改缩进数(如3改为0)。

在您的.emacs 末尾,您可以永久设置该指令:

  (c-set-offset 'topmost-intro-cont 0 nil)

【讨论】:

  • 如何按^C^o?谢谢!
【解决方案2】:

Emacs 的 C++ 模式有不同的缩进样式。 Quoting EmacsWiki:

较为知名的 C 风格的部分列表:

  • “gnu”:GNU 项目的默认样式
  • “k&r”:C 的作者 Kernighan 和 Ritchie 在他们的书中使用了什么
  • “bsd”:BSD 开发人员使用的东西,也就是 Eric Allman 之后的“Allman 风格”。
  • “stroustrup”:C++ 的作者 Stroustrup 在他的书中使用了什么
  • “linux”:Linux 开发人员用于内核开发的工具
  • “python”:Python 开发人员使用什么来扩展模块
  • “java”:java-mode 的默认样式(见下文)
  • “用户”:当你想定义自己的风格时

c-default-style 变量是您需要更改的。也许其中之一将是您所需要的。目前没有 Emacs,所以我无法查看它们。

【讨论】:

  • 非常感谢。我已经选择了样式 java 作为 c++ 的缩进样式,并使用 c-offsets-alist 为命名空间定制了它。我想知道是否有可能对模板做同样的事情
【解决方案3】:

我不知道,但我想你的模式会有所作为。你在什么模式下编辑?我假设 c++-mode 因为你有 c++ 作为标签。

对我来说,在 c++ 模式下,结果是这样的:

template <typename T>
class A {
   /* ... */
};

cmets 缩进,但class A 没有缩进。

【讨论】:

    【解决方案4】:

    需要检查的几件不同的事情:

    在 C 模式而不是 C++ 模式下编辑 C++ .h 文件时,我看到了类似的问题。默认情况下,.h 文件是 C 模式,而不是 C++ 模式。 [您可以通过在窗口底部的括号中查找“C++”或“C”来检查这一点。]您可以通过在 .emacs 中使用以下内容将 emacs 设置为始终以 C++ 格式打开 .h 文件

    (setq auto-mode-alist (append '(("\\.h\\'"   . c++-mode)
                    )
                      auto-mode-alist
                      ))
    

    要检查的另一件事是您如何设置 c-default-style。 “CC 模式”的信息页面详细介绍了所有可能性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      相关资源
      最近更新 更多