2012-07-11 5 views
0

Mac OS X에서 Emacs 24.1.1을 사용하는 데 문제가 있습니다. Jade 및 CoffeeScript 파일을 편집 중이므로 공백 모드를 사용하도록 설정했습니다. 파일 형식.Emacs 공백 모드는 공백 행과 열을 무시합니다.

내가보고있는 것은 whitespace-line-column 설정에 관계없이 공백 행 글꼴로 70 자보다 긴 행이 강조 표시된다는 것입니다.

이 장면에서

screen shot of problem

, 내가 채우기 열 추적 공백 라인 열을 정의했습니다, 나는 120 채우기 열을 설정했지만, 훨씬 더 짧은 선이 강조되고있는 것은 분명하다 .

나는 비취 모드에 대한 코드를 훑어 보았고 그 동작을 설명 할만한 것을 보지 못했지만 이맥스 리스프에 대해서만 이해하고 있습니다.

미리 알려 주셔서 감사합니다!

+0

'fill-column'은 로컬 버퍼입니다. 현재 버퍼 인 동안'M- : fill-column'을 타이프하여'user.jade' 버퍼에서 120을 확인할 수 있습니까? – ataylor

+0

^H v 채우기 - 열 fill-column은'C 소스 코드 '에 정의 된 변수입니다. 값은 120 원래 값은 70 버퍼의 로컬 index.jade; 전역 값은 70 –

+0

공백 모드는 채우기 - 열에 대한 전체 값을 지정하는 것처럼 보입니다. 그것은 버퍼 로컬 버전을 인식하지 못하는 것 같습니다. –

답변

4

whitespace-line-column 전에 whitespace-mode으로 설정해야합니다. 즉, 값을 변경하려면 whitespace-mode을 껐다가 다시 켜기 전까지는 값이 적용되지 않습니다. 당신은 그러나

:-(한 번 모드를 활성화 할 때까지 아이러니하게도, 그 변수는 당신이 당신의 이맥스에 다음 줄을 넣어이 변수의 전역 값을 사용자 정의 할 수 있습니다, M-x customize 사용할 수 없습니다 파일 :

(setq whitespace-line-column 120) 

Emacs를 시작할 때 .emacs가 평가되기 때문에 공백 모드를 처음으로 호출하기 전에 설정이 적용되므로 원하는 것을 수행해야합니다. 값을 전역 적으로 설정하지 않고 Jade 파일의 경우 .emacs 파일에 다음을 입력하십시오.

(set (make-local-variable 'whitespace-line-column) 80) 
(add-hook 'after-change-major-mode-hook 
      '(lambda() (when (eq major-mode 'jade-mode) 
         (setq whitespace-line-column 120)))) 

긴 줄을 특별히 강조 표시하지 않으려면 고려해야 할 세 번째 옵션이 있습니다. (있는 경우

  • 라인 꼬리

    • 라인 : 당신은 (whitespace-style를 입력 ENTER M-x customize-variable을 입력하여) 변수 공백 스타일을 사용자 정의하고 값 목록의 항목을 제거 할 수 있습니다 어떤). 이렇게하면 whitespace-line-column 값과 상관없이 긴 행의 강조 표시가 해제됩니다 (공백 모드를 비활성화 한 후 다시 활성화해야 함).

  • +0

    이것을 버그라고 생각하십니까? 공백 모드는 공백 - 행 - 열 (및 채우기 - 열)이 변경 될 때마다 존중해야합니다. –