2011-03-21 6 views
4

너무 바보가 아니길 바라는 매우 구체적인 질문입니다.이맥스 : 변경 로그 모드에서 채우기 - 열 설정

(setq-default fill-column 120)은 버퍼 채우기의 너비를 120 열로 설정합니다. 그렇지 않은 경우 기본값은 74입니다.

이 명령은 내 .emacs 파일에 넣을 때 내가 사용하는 모든 주요 모드 (C++, Perl 등)에서 작동합니다. 그러나 변경 로그 주 모드 (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 소스 코드를 편집 할 때 fill-column은 로그 변경 모드과 70 다른 곳에서 74로 설정되어, μour hook에서 지정한 값을 덮어 씁니다. 이 파일은 .dir-locals.el이라는 파일에 정의되어 있으며 편집 된 파일이있는 디렉토리 또는 그 위에 둘 수 있습니다.

+0

위대한 작품, 고마워. 일반적으로'(setq-default fill-column 120)'으로 디폴트 값을 이미 설정할 때'add-hook' 할 필요가있는 이유는 무엇입니까? –

+0

'change-log-mode'는 변수를 명시 적으로 설정하기 때문에 전역 변수를 숨 깁니다. 나는 당신이 당신의 훅에서'kill-local-variable'을 사용하여 이것을 해결할 수 있었다고 생각합니다. – Lindydancer