有人知道如何禁止emacs在模板子句后缩进函数或类的名称吗?
当前的结果是:
template <typename T>
class A {
/* ... */
};
我想要的地方:
template <typename T>
class A {
/* ... */
};
非常感谢你的帮助。
编辑1 我正在使用c ++ - 模式,java作为c ++的缩进样式。我用这种方式定制了c-offset-alist:
(custom-set-variables
;;
'(c-offsets-alist (quote ((case-label . +) (innamespace . 0))))
答案 0 :(得分:8)
转到class
行并点击TAB
以执行(未经请求的)缩进。
然后按 Control-C Control-O to display the indent mode for
topmost-intro-cont`
按ENTER
,然后您可以更改缩进号码(例如3到0)。
在.emacs
结束时,您可以永久设置该指令:
(c-set-offset 'topmost-intro-cont 0 nil)
答案 1 :(得分:3)
Emacs的C ++模式有不同的缩进样式。 Quoting EmacsWiki:
更熟知的C样式的部分列表:
c-default-style
变量是您需要更改的内容。也许其中一个将是你需要的。现在没有Emacs,所以我无法查看它们。
答案 2 :(得分:0)
我不知道,但我想你的模式会有所作为。你在什么模式编辑?我假设c ++ - 模式导致你有c++
作为标记。
对我来说,在c ++模式下,结果如下:
template <typename T>
class A {
/* ... */
};
评论缩进,但class A
没有缩进。
答案 3 :(得分:0)
要检查几件不同的事情:
我在C模式而不是C ++模式下编辑C ++ .h文件时遇到了类似的问题。默认情况下,.h文件是C模式,而不是C ++模式。 [您可以通过在窗口底部的括号中查找“C ++”或“C”来检查这一点。]您可以设置emacs以始终使用.emacs中的以下内容将.h文件作为C ++打开
(setq auto-mode-alist (append '(("\\.h\\'" . c++-mode)
)
auto-mode-alist
))
要检查的另一件事是你如何设置你的c-default风格。 “CC模式”的信息页面详细介绍了所有可能性。