【求教】如何判断当前某个模式是否启用?

如何判断当前某个模式是否启用?

bound-and-true-p 靠谱吗? 怎么有些模式测不出来?

  • 对于major mode,用derived-mode-p
  • 对于minor mode,直接检查同名变量是否为真

感想回复 你说的是symbolp吗? centaur-tabs-mode 这个minor mode使用symbolp没用 反倒是用bound-and-true-p可以

我说(eq xxxx-mode t) 或者你直接把xxx-mode这个变量当成布尔值用


为什么要用symbolp?xxx-mode这个变量只会存放tnil这两个布尔值,而且这两个都是symbol

再劳烦请教下,bound-and-true-p 这个什么情况下用合适?

bound-and-true-p这个函数是检测一个全局变量是否设置且为真,没有想到特别的use case来用这个,一个可能是某个全局变量在新版本引入了,然后你需要处理这个不兼容性才会用这个。

1 个赞

受教了,非常感谢

minor-mode的那个symbol有可能不存在,如果你直接判断的话。

写包的话就先require,写配置就放with-eval-after-load里。这种情况用bound-and-true-p掩盖问题不好。