更改Emacs C样式不起作用

时间:2011-09-13 15:33:40

标签: emacs elisp cc-mode

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

(setq c-default-style "bsd"
      c-basic-offset 4)
(setq c-indent-level 4)

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

看起来不错。您是否在.emacs文件中执行了这些行?转到它们的末尾并执行C-x C-e。如果这不起作用,请关闭emacs并重新启动它(这会强制它重新读取.emacs文件)。如果这不起作用,请转到暂存缓冲区或类似的东西,然后执行(message "%s %d %d" c-default-style c-basic-offset c-indent-level)以查看emacs认为这些值是什么(可能您要包含另一个覆盖这些值的文件?)然后加载一个CC文件并检查模式以确保您处于C型模式。