2010-01-19 51 views
2

我使用Emacs 23.1和ESS 5.4編輯Sweave文件。我想關閉緩衝區中的默認AUCTeX縮進行爲(以避免包含在逐項列表中的代碼塊帶來的麻煩),所以在文件頂部我有% -*- LaTeX-indent-level: 0; LaTeX-item-indent: 0; -*-。當我打開了緩衝和運行C-h v LaTeX-indent-level,我得到了我想要的東西:使用Emacs和Sweave的緩衝區局部變量

LaTeX-indent-level is a variable defined in `latex.el'. 
Its value is 0 
Local in buffer test.Rnw; global value is 2 

    This variable is a file local variable. 

然而,當我編輯的代碼塊,它返回到默認的行爲。 C-h v LaTeX-indent-level,現在產量:

LaTeX-indent-level is a variable defined in `latex.el'. 
Its value is 2 

我試圖修復中the noweb-mode FAQ建議,該建議加入

(add-hook 'noweb-select-mode-hook 
       '(lambda() (hack-local-variables-prop-line))) 

我的.emacs。當我這樣做時,上述行爲依然存在。

有什麼辦法可以讓緩衝區局部變量在這種情況下工作嗎?我寧願不必更改我的.emacs以在所有Sweave/noweb緩衝區中將LaTeX-indent-level設置爲0。

回答

0

我沒有測試過這一點,但儘量不要使用以下:

(add-hook 'noweb-select-mode-hook 
       '(lambda() (hack-local-variables))) 

也許劈局部變量 - 丙線已改爲只解析值,而不是instate他們。