更改Emacs CC模式缩进样式

更改Emacs CC模式缩进样式,emacs,indentation,cc-mode,Emacs,Indentation,Cc Mode,我是一个emacs新手,我一直在尝试为cc模式设置缩进样式。我喜欢这样写代码: if(true) { foo(); bar(); } 但默认缩进样式更像: if(true) { foo(); bar(); } 似乎我想要的缩进样式是“bsd”,而默认样式是“gnu”。我将以下内容放入init.el文件以更改设置: (setq c-default-style "bsd") (setq c-basic-indent 4) (setq c-basic-off

我是一个emacs新手,我一直在尝试为cc模式设置缩进样式。我喜欢这样写代码:

if(true)
{
    foo();
    bar();
}
但默认缩进样式更像:

if(true)
  {
    foo();
    bar();
  }
似乎我想要的缩进样式是“bsd”,而默认样式是“gnu”。我将以下内容放入init.el文件以更改设置:

(setq c-default-style "bsd")
(setq c-basic-indent 4)
(setq c-basic-offset 4)
这改变了偏移量和默认样式,但当我键入一些代码时,它的格式仍然与gnu样式类似。为了澄清,我将键入
if(true)[ENTER]{[ENTER]foo();[ENTER]}
,结果将是gnu风格的代码。我还尝试将其放入init.el中,以获得相同的结果:

(defun my-c-mode-hook ()
(setq c-basic-offset 4
    c-indent-level 4
    c-default-style "bsd"))
(add-hook 'c-mode-common-hook 'my-c-mode-hook)
我可以确定设置已被更改,因为我在微型缓冲区中计算了此表达式
(消息“%s%s%d”c-default-style c-indentation-style c-basic-offset)
以获得此结果:
“bsd bsd 4”


我正在使用。它包含的软件包(smartparens或autocomplete)可能会干扰我的设置吗?

看来你做的是对的。你应该在这里问:。另外,看看为什么预包装的初学者工具包不是最好的选择。另请参阅。