我正在使用Emacs开发Javascript。
我有一个函数可以将我的Javascript代码格式化为Standard Style文件保存。我的配置如下所示:
(add-hook 'js-mode-hook
(lambda ()
(add-hook 'before-save-hook 'standardfmt t t)))
不幸的是,这个钩子也有使用json-mode
应用于缓冲区的副作用,因为json-mode
从js-mode
延伸。
是否有一种简单的方法可以从此挂钩中排除json-mode
个缓冲区?
答案 0 :(得分:2)
你可以这样做:
(add-hook 'js-mode-hook
(lambda ()
(unless (derived-mode-p 'json-mode)
(add-hook 'before-save-hook 'standardfmt t t))))
或者
(add-hook 'js-mode-hook
(lambda ()
(when (eq major-mode 'js-mode) ;; Not a derived mode.
(add-hook 'before-save-hook 'standardfmt t t))))