emacs - 从js-mode-hook中排除json-mode

时间:2015-09-23 14:50:25

标签: javascript json emacs

我正在使用Emacs开发Javascript。

我有一个函数可以将我的Javascript代码格式化为Standard Style文件保存。我的配置如下所示:

(add-hook 'js-mode-hook
      (lambda ()
        (add-hook 'before-save-hook 'standardfmt t t)))

不幸的是,这个钩子也有使用json-mode应用于缓冲区的副作用,因为json-modejs-mode延伸。

是否有一种简单的方法可以从此挂钩中排除json-mode个缓冲区?

1 个答案:

答案 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))))