Зніміть гачки для конкретних режимів


13

Я хочу видалити пробіл із заднім числом для збереження для кожного режиму, крім org-mode.

У .emacsмене є такий рядок:

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

Я використовую use-packageмакрос, і я спробував додати (remove-hook 'before-save-hook 'delete-trailing-whitespace)до свого :configблоку, але це видаляє гачок у всьому світі. Як я можу видалити його спеціально org-mode?

Відповіді:


18

Я не маю досвіду роботи з use-packageмакросом, але в принципі, ви можете використовувати третій аргумент, remove-hookякий говорить йому, щоб видалити функцію лише з локального гака:

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

Ось докстринг для довідки:

(remove-hook HOOK FUNCTION &optional LOCAL)

Вилучіть зі значення HOOK функцію FUNCTION. HOOK повинен бути символом, а FUNCTION може бути будь-якою дійсною функцією. Якщо FUNCTION не є значенням HOOK або, якщо FUNCTION не відображається у списку гачків для запуску в HOOK, нічого не робиться. Див add-hook.

Необов'язковий третій аргумент LOCAL, якщо він не є нульовим, говорить про зміну локального значення буфера, а не за замовчуванням.


Відмінно працює, дякую. Ще одне чудове нагадування C-h f. Я прийму, як тільки таймер закінчиться.
Матвій Пізіак

2
@MatthewPiziak: якщо це змушує тебе відчувати себе краще, минуло дуже багато часу, перш ніж я зрозумів, що він взяв цей третій аргумент, і це було лише після того, як хтось із цього сайту вказав на мене.
Дан

2
Чи це не буде працювати лише в тому випадку, якщо для початку функція була явно додана як LOCAL add-hook? (Швидкий тест у 24.5, здається, підтверджує моє сподівання ... Чи є нова функціональність у багажнику, щоб полегшити подібний спосіб
переопрацювання
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.