C++ Emacs缩进模板类/函数

C++ Emacs缩进模板类/函数,c++,templates,emacs,C++,Templates,Emacs,有人知道如何禁止emacs在模板子句之后缩进函数或类的名称吗 目前的结果是: template <typename T> class A { /* ... */ }; 我不知道,但我想你的模式会有所不同。您正在以什么模式编辑?我假设c++模式是因为您将c++作为标记 对我来说,在c++模式下,结果是这样的: template <typename T> class A { /* ... */ }; 模板 甲级{ /* ... */ };

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

目前的结果是:

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

我不知道,但我想你的模式会有所不同。您正在以什么模式编辑?我假设c++模式是因为您将
c++
作为标记

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

template <typename T>
class A {
   /* ... */
};
模板
甲级{
/* ... */
};

缩进注释,但<代码>类A<代码>未缩进。

< P>对于Emacs C++模式,缩进有不同的样式。p> 更知名的C风格的部分列表:

  • “gnu”:gnu项目的默认样式
  • “k&r”:C的作者克尼根和里奇在他们的书中使用了什么
  • “bsd”:bsd开发人员使用的,也就是Eric Allman之后的“Allman风格”
  • “StruouTUP”:C++作者Stroustrup在<中使用的内容
  • “linux”:linux开发人员用于内核开发的内容
  • “python”:python开发人员用于扩展模块的内容
  • “java”:java模式的默认样式(见下文)
  • “用户”:当您想要定义自己的样式时

c-default-style
变量是您需要更改的。也许其中一个就是你所需要的。现在没有Emacs,因此我无法将其签出。

需要检查以下几项:

<>我在C++模式下编辑C++ .h文件而不是C++模式时遇到了类似的问题。默认情况下,.h文件是C模式,而不是C++模式。你可以通过在窗口底部的括号中寻找“C++”或“C++”来检查这个问题。
(setq auto-mode-alist (append '(("\\.h\\'"   . c++-mode)
                )
                  auto-mode-alist
                  ))

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

转到
行,点击
选项卡
执行(未经请求的)缩进。
然后按Control-CControl-O
显示最上面的intro cont `
的缩进模式

ENTER
,然后可以更改缩进编号(例如3到0)

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

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

你在.emacs中写了什么吗?默认情况下,我会得到你要的那个。我启动了emacs-Q。@vpit3833我编辑了这个问题以使情况更清楚。非常感谢。我已经选择了C++的缩进风格java,并使用<代码> C-OffStistalist对它进行了自定义。我想知道是否有可能对templateshow执行同样的操作我是否按^C^o?谢谢
(setq auto-mode-alist (append '(("\\.h\\'"   . c++-mode)
                )
                  auto-mode-alist
                  ))
  (c-set-offset 'topmost-intro-cont 0 nil)