2011-03-21 46 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

相关问题