我在Windows上使用Emacs 24.3。我有自动缩进设置,但我想在C ++中只有缩进一级的构造函数。我已经读过将substatement-open值设置为0可以解决这个问题,但是,我仍然遇到这个问题。
我目前看到的内容:
class A
{
public:
A()
{
// code
}
};
我想看到的内容:
class A
{
public:
A()
{
// code
}
};
是否有人能够告诉我我的.emacs中有什么错误或缺失以纠正这个问题?
(setq c-default-style "stroustrup"
c-basic-offset 4)
; no extra indentation on constructors
(defun my-cpp-mode-hook ()
(setq c-basic-offset 4)
(c-set-offset 'substatement-open 0))
(add-hook 'c++-mode-hook 'my-cpp-mode-hook)
; auto-indentation
(add-hook 'c-mode-common-hook (lambda () (c-toggle-auto-state 1)))
答案 0 :(得分:1)
尝试修改my-cpp-mode-hook
以将inline-open
设置为0
:
(defun my-cpp-mode-hook ()
(setq c-basic-offset 4)
(c-set-offset 'substatement-open 0)
(c-set-offset 'inline-open 0))
通常,您可以通过移动到相关行并使用c-mode
(默认情况下绑定到c-show-syntactic-information
)检查C-c C-s
(和类似模式)中的缩进规则,其中这个案例给出了Syntactic analysis: ((inclass 10) (inline-open))
。