Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 如何检查次要模式(.例如flymake模式)是否打开?_Emacs_Flymake - Fatal编程技术网

Emacs 如何检查次要模式(.例如flymake模式)是否打开?

Emacs 如何检查次要模式(.例如flymake模式)是否打开?,emacs,flymake,Emacs,Flymake,使用flymake模式时,我总是出错。和flymake模式关闭 所以我想检查flymake模式是否开启。如果未启用,我将在调用flymake next error之前启用它 谢谢。大多数次要模式都是使用define minor mode宏定义的。对于缓冲区局部模式,该宏将创建与模式本身同名的缓冲区局部变量1。当为当前缓冲区启用模式时,变量为non-nil 因此,要检查是否启用了flymake模式,可以测试变量flymake模式(注意,如果未启用该模式,可能根本不会定义该变量): (和(boun

使用flymake模式时,我总是出错。和flymake模式关闭

所以我想检查flymake模式是否开启。如果未启用,我将在调用flymake next error之前启用它


谢谢。

大多数次要模式都是使用
define minor mode
宏定义的。对于缓冲区局部模式,该宏将创建与模式本身同名的缓冲区局部变量1。当为当前缓冲区启用模式时,变量为non-
nil

因此,要检查是否启用了
flymake模式
,可以测试变量
flymake模式
(注意,如果未启用该模式,可能根本不会定义该变量):

(和(boundp'flymake模式)flymake模式)
正如Thom在评论中指出的,可以使用方便的宏来表示:

(绑定和真实的flymake模式)
我们可以将其用作
if
when
表达式的条件,除非
表达式:

(如果(绑定和真实的flymake模式)
(信息“flymake模式开启”)
(信息“flymake模式已关闭”))


1对于全局次要模式,相应变量为全局变量;但是flymake模式是缓冲区本地模式。

另一种解决方案是使用M-x描述模式来显示所有激活的次要模式(和主要模式)以及每个模式的简要说明


如果当前缓冲区中的次要模式处于启用状态,您可以在弹出缓冲区中找到它的名称。

如果打开时出现错误,您打算从检查中获得什么?根据其主页(),flymake是次要模式,而不是主要模式。谢谢。错误并非总是发生。它发生在我的js文件有很多失败的时候。flymake是一个小模式。谢谢。这是我的错。Flymake不是主要模式,而是次要模式。这里的测试可以缩短为
(bound-and-true-p Flymake模式)
M-:
,用于打开一个可以计算表达式的小缓冲区。