当我使用flymake-mode时,经常会遇到错误并且flymake-mode关闭了。
因此我想要检查flymake-mode是否开启。如果没有开启,我会在调用flymake-next-error之前将其打开。
谢谢。
当我使用flymake-mode时,经常会遇到错误并且flymake-mode关闭了。
因此我想要检查flymake-mode是否开启。如果没有开启,我会在调用flymake-next-error之前将其打开。
谢谢。
大多数小模式可以使用define-minor-mode
宏来定义。对于缓冲区本地模式,该宏会创建一个与模式本身同名的缓冲区本地变量1。当对当前缓冲区启用模式时,该变量为非nil
。
因此,要检查是否启用了flymake-mode
,可以测试变量flymake-mode
(请注意,如果尚未启用该模式,则可能根本不存在该变量):
(and (boundp 'flymake-mode) flymake-mode)
正如Thom在评论中指出的那样,可以使用方便的宏来表达:
(bound-and-true-p flymake-mode)
我们可以将其作为if
或when
或unless
表达式的条件:
(if (bound-and-true-p flymake-mode)
(message "flymake-mode is on")
(message "flymake-mode is off"))
1 对于全局小模式,相应的变量是 global;但是 flymake-mode 是缓冲区本地的。
(bound-and-true-p flymake-mode)
。 - ThomM-:
用于打开迷你缓冲区,您可以在其中评估表达式。 - jgomo3另一种解决方案是使用M-x describe-mode,显示所有活动的次要模式(和主模式),以及每个模式的简要描述。
如果在当前缓冲区中启用了该次要模式,则可以在弹出的缓冲区中找到其名称。