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

标签 javascript json emacs

我正在使用 Emacs 开发 Javascript。

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

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

不幸的是,这个钩子(Hook)也有使用 json-mode 应用于缓冲区的副作用,因为 json-mode 扩展自 js-mode.

有没有一种简单的方法可以从这个钩子(Hook)中排除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))))

关于javascript - emacs - 从 js-mode-hook 中排除 json-mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742797/

相关文章:

javascript - jQuery .each 对象排序

搜索 ArrayList 时发生 Java JSON ClassCastException

haskell - 如果 cabal 或工作目录设置为项目目录,Emacs Interactive-Haskell repl 无响应

emacs - 从 .emacs 设置 Emacs 24 颜色主题

JavaScript:显示多种 T 恤颜色背面图像的函数

php - 选中时更改包含复选框属性的 div

javascript - 如何将样式组件转换为 NPM 包?

javascript - jQuery - 将函数数组传递给 ajax 成功回调

javascript - 使用损坏的文件编辑 chrome 扩展问题

emacs 用回车覆盖