我有一个功能
(defun a--before-test-save-hook()
"Test of before save hook"
(message "foobar"))
我希望在除prog-mode
之外的python-mode
中运行它,
但我现在不知道
我只是add-hook
prog-mode
,包括python-mode
(add-hook 'prog-mode (lambda ()
(add-hook 'before-save-hook 'a-test-before-save-hook t t)))
我试过
(defun a-test-before-save-hook()
"Test of before save hook"
(unless (eq major-mode 'python-mode)
(message "foobar")))
但我想要更好的尝试,任何解决方案都将受到赞赏。
答案 0 :(得分:2)
不确定它是否更好,但你可以这样做:
(add-hook 'prog-mode-hook
(lambda ()
(unless (derived-mode-p 'python-mode)
(add-hook 'before-save-hook
#'a-test-before-save-hook t t))))
当然,我自己的反应是问“是什么让Python变得特别?”。答案可能会让你用更直接的问题替换(derived-mode-p 'python-mode)
测试(例如,问题可能与缩进有关,因此也适用于Coffeescript和Haskell,也许你可以检查而是electric-indent-inhibit
。