2012-04-10 40 views
14

我使用flymake模式時總是出錯。 Flymake模式關閉。如何檢查次要模式(.e.g flymake-mode)是否打開?

enter image description here

所以我要檢查flymake模式是否開啓。如果沒有打開,我會在打電話給flymake-next-error之前打開它。

謝謝。

+0

如果打開時出現錯誤,您打算從檢查中獲得什麼? – 2012-04-10 11:53:02

+1

根據其主頁(http://flymake.sourceforge.net/),flymake是次要模式,而不是主要模式。 – 2012-04-10 12:25:27

+0

謝謝。錯誤不會一直髮生。它發生時,我的js文件有很多失敗。 flymake是一個小模式。 – coordinate 2012-04-11 01:03:35

回答

22

大多數小模式是使用宏定義的define-minor-mode。對於緩衝區本地模式,該宏會創建一個與模式本身同名的緩衝區局部變量。當爲當前緩衝區啓用模式時,該變量爲非nil

因此,以檢查是否flymake-mode已啓用,您可以測試變量flymake-mode(注意,這個變量可能不會在所有如果尚未啓用的模式來定義):

(and (boundp 'flymake-mode) flymake-mode) 

其中,作爲託姆點

(bound-and-true-p flymake-mode) 

,我們可以作爲一個ifwhenunless表達的條件使用方法:出的意見,可以通過方便的宏來表示:

(if (bound-and-true-p flymake-mode) 
    (message "flymake-mode is on") 
    (message "flymake-mode is off")) 

對於全局次要模式,對應的變量是全局的;但flymake模式是緩衝區本地。

+0

謝謝。這是我的錯誤。 Flymake不是主要模式,而是一種小模式。 – coordinate 2012-04-11 00:50:58

+3

這裏的測試可以縮短爲'(bound-and-true-p flymake-mode)'。 – Thom 2014-10-05 20:26:07

相關問題