특정 모드의 후크 제거


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.