除了特定模式外,在 prog-mode 中添加一个钩子
add a hook in prog-mode except a particular mode
我有一个功能
(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")))
但我想要更好的尝试,任何解决方案将不胜感激。
不确定是否更好,但您可以这样做:
(add-hook 'prog-mode-hook
(lambda ()
(unless (derived-mode-p 'python-mode)
(add-hook 'before-save-hook
#'a-test-before-save-hook t t))))
当然,我自己的反应就是问"what makes Python special?"。答案可能会让您用更直接的问题核心内容替换 (derived-mode-p 'python-mode)
测试(例如,问题可能与缩进重要性有关,因此也适用于 Coffeescript 和 Haskell 以及也许您可以改为检查 electric-indent-inhibit
)。
我有一个功能
(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")))
但我想要更好的尝试,任何解决方案将不胜感激。
不确定是否更好,但您可以这样做:
(add-hook 'prog-mode-hook
(lambda ()
(unless (derived-mode-p 'python-mode)
(add-hook 'before-save-hook
#'a-test-before-save-hook t t))))
当然,我自己的反应就是问"what makes Python special?"。答案可能会让您用更直接的问题核心内容替换 (derived-mode-p 'python-mode)
测试(例如,问题可能与缩进重要性有关,因此也适用于 Coffeescript 和 Haskell 以及也许您可以改为检查 electric-indent-inhibit
)。