2011-03-21 49 views
4

非常具體的問題,我希望不是太愚蠢。Emacs:在更改日誌模式下設置填充列

(setq-default fill-column 120)將緩衝區填充的寬度設置爲120列。我的默認值是74.

這個命令放在我的.emacs文件中時,適用於我使用的所有主要模式(C++,Perl等)。但是,它似乎不會影響Change Log主模式(change-log-mode-hook)。你知道如何設置fill-column這個模式嗎?

回答

6

首先,你必須把它(我只是確保你得到這部分右):

(defun my-change-log-mode-hook() 
    (setq fill-column 120)) 

(add-hook 'change-log-mode-hook 'my-change-log-mode-hook) 

其次,你必須確保沒有目錄局部變量設置,覆蓋這個。例如,在編輯Emacs本身的源代碼時,對於更改日誌模式和其他地方的70,填充列將被設置爲74,覆蓋您在μ鉤子中指定的值。這些文件在名爲.dir-locals.el的文件中定義,並且可以位於包含編輯文件的目錄中或上方。

+0

太好了,那有用,謝謝。一般來說,當我已經用'(setq-default fill-column 120)'設置默認值時,爲什麼我需要'加鉤'? – 2011-03-21 10:36:29

+0

因爲'change-log-mode'顯式設置變量,隱藏它的全局變體。我想你可以通過在你的鉤子中使用'kill-local-variable'來解決這個問題。 – Lindydancer 2011-03-21 10:53:08

相關問題