繁体   English   中英

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

[英]emacs - exclude json-mode from js-mode-hook

我正在使用Emacs开发Javascript。

我有一个函数,可以在保存文件时将Javascript代码格式化为“ 标准样式 ”。 我的配置如下所示:

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

不幸的是,由于json-mode继承自js-mode ,因此该钩子也具有使用json-mode应用于缓冲区的副作用。

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

您可以这样做:

(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))))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM