2010-01-19 4 views
2

저는 Sweave 파일을 편집하기 위해 ESS 5.4와 함께 Emacs 23.1을 사용하고 있습니다. 버퍼의 기본 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 

내가 수정 나의 이맥스에

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

을 추가 제안하는 the noweb-mode FAQ에 제안했습니다. 위에서 설명한 동작은 내가 이것을했을 때 계속되었습니다.

버퍼 로컬 변수를 얻을 수있는 방법이 있습니까? 모든 Sweave/noweb 버퍼에서 LaTeX-indent-level을 0으로 설정하기 위해 .emacs를 변경하지 않으려합니다. 나는이 테스트를하지만, 대신 다음을 시도하지 않은

답변

0

:

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

아마도 해킹 - 로컬 변수 소품 라인은 단지 그들을 설치 안함, 값을 구문 분석하도록 변경되었습니다.