更改Emacs C样式不起作用

dbm*_*kus 1 emacs elisp cc-mode

对于Emacs CC模式,我试图使用"bsd"样式,但要使所有行默认为缩进,增量为4而不是8.在我的.emacs文件中,我已经放置:

(setq c-default-style "bsd"
      c-basic-offset 4)
(setq c-indent-level 4)
Run Code Online (Sandbox Code Playgroud)

但所有行仍然缩进到8个空格.我无法真正找到问题所在.我正在运行GNU Emacs 23.3.1.

ata*_*lor 9

CC模式设置是缓冲区本地的,可能会导致问题.配置它的最佳方法是将自定义项放在钩子中.这将确保无论cc模式是否已使c-basic-offset缓冲区为本地,都将在模式启动时应用更改.我使用类似的东西:

(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)
Run Code Online (Sandbox Code Playgroud)