Hủy bỏ móc cho các chế độ cụ thể


12

Tôi muốn xóa khoảng trắng theo dõi khi lưu cho mọi chế độ ngoại trừ org-mode.

Trong tôi .emacs, tôi có dòng sau:

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

Tôi sử dụng use-packagemacro và tôi đã thử thêm (remove-hook 'before-save-hook 'delete-trailing-whitespace)vào :configkhối của mình , nhưng điều đó loại bỏ hook trên toàn cầu. Làm thế nào tôi có thể loại bỏ nó cụ thể cho org-mode?

Câu trả lời:


17

Tôi không có bất kỳ kinh nghiệm nào với use-packagemacro, nhưng về nguyên tắc, bạn có thể sử dụng đối số thứ ba để remove-hooknói với nó để loại bỏ hàm chỉ khỏi hook cục bộ:

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

Đây là chuỗi doc để tham khảo:

(remove-hook HOOK FUNCTION &optional LOCAL)

Xóa khỏi giá trị của HOOK chức năng FUNCTION. HOOK phải là một biểu tượng và FUNCTION có thể là bất kỳ chức năng hợp lệ nào. Nếu FUNCTION không phải là giá trị của HOOK, hoặc, nếu FUNCTION không xuất hiện trong danh sách các hook để chạy trong HOOK, thì không có gì được thực hiện. Xem add-hook.

Đối số thứ ba tùy chọn, LOCAL, nếu không phải là số không, nói rằng sửa đổi giá trị bộ đệm cục bộ của hook thay vì giá trị mặc định của nó.


Hoạt động hoàn hảo, cảm ơn bạn. Một lời nhắc nhở tuyệt vời để C-h f. Tôi sẽ chấp nhận ngay khi hết giờ.
Matthew Piziak

2
@MatthewPiziak: nếu nó làm bạn cảm thấy tốt hơn, phải mất một thời gian rất lâu trước khi tôi nhận ra rằng nó đã đưa ra lập luận thứ ba đó và chỉ sau khi ai đó trên trang web này chỉ ra cho tôi.
Dân

2
Điều này sẽ không hoạt động nếu chức năng đã được thêm rõ ràng là ĐỊA PHƯƠNG add-hookđể bắt đầu? (Một thử nghiệm nhanh trong 24.5 dường như xác nhận sự mong đợi của tôi ... có chức năng mới nào trong thân cây để tạo điều kiện cho loại ghi đè này không?)
phils
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.