특정 모드의 후크 제거


12

를 제외한 모든 모드에서 저장시 후행 공백을 삭제하고 싶습니다 org-mode.

내에 .emacs는 다음 줄이 있습니다.

(add-hook 'before-save-hook 'delete-trailing-whitespace)

내가 사용하는 use-package매크로를, 나는 추가하는 시도 (remove-hook 'before-save-hook 'delete-trailing-whitespace)내에 :config블록,하지만 전 세계적으로 후크를 제거합니다. 특별히 제거하려면 어떻게해야 org-mode합니까?

답변:


17

나는 use-package매크로에 대한 경험이 없지만 원칙적으로 remove-hook로컬 후크에서만 함수를 제거하도록 지시 하는 세 번째 인수를 사용할 수 있습니다 .

(remove-hook 'before-save-hook 'delete-trailing-whitespace t)

참조 할 docstring은 다음과 같습니다.

(remove-hook HOOK FUNCTION &optional LOCAL)

함수 기능 HOOK의 값에서 제거하십시오. HOOK는 기호 여야하며 FUNCTION은 유효한 기능 일 수 있습니다. FUNCTION이 HOOK 값이 아니거나 HOOK에서 실행할 후크 목록에 FUNCTION이 표시되지 않으면 아무 것도 수행되지 않습니다. 참조하십시오 add-hook.

선택적 세 번째 인수 인 LOCAL은 nil이 아닌 경우 후크의 버퍼 로컬 값을 기본값 대신 수정하도록합니다.


완벽하게 작동합니다. 감사합니다. 에 대한 또 다른 위대한 알림 C-h f. 타이머가 끝나는대로 받아들입니다.
Matthew Piziak

2
@ MatthewPiziak : 기분이 나아지면 세 번째 주장이 필요하다는 것을 깨닫기까지 오랜 시간이 걸렸습니다.
Dan

2
함수가 LOCAL 로 명시 적으로 추가 된 경우에만 작동하지 add-hook않습니까? (24.5의 빠른 테스트는 내 기대를 확인하는 것으로 보입니다 ... 트렁크에 이러한 종류의 재정의를 용이하게하는 새로운 기능이 있습니까?)
Phil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.