2011-09-13 134 views
1

對於Emacs CC模式,我嘗試使用「bsd」風格,但是使其使所有行默認以4而不是8爲增量進行縮進。在我的.emacs文件,我把:更改Emacs C風格不起作用

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

但所有行仍然縮進到8個空格。我無法真正找到問題所在。我正在運行GNU Emacs 23.3.1。

+0

也許[文件變量] [1]覆蓋您的設置? [1]:http://www.gnu.org/s/libtool/manual/emacs/File-Variables.html – phimuemue

回答

8

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

看起來沒錯。你有沒有在你的.emacs文件中執行這些行?到他們的最後,做C-x C-e。如果這不起作用,請關閉emacs並重新啓動它(這將強制它重新讀取.emacs文件)。如果這不起作用,請轉到您的暫存緩衝區或類似的地方,然後執行(message "%s %d %d" c-default-style c-basic-offset c-indent-level)以查看emacs認爲這些值是什麼(可能是包含覆蓋這些值的另一個文件?)然後加載一個CC文件並檢查模式以確保您處於C型模式。