2012-04-10 33 views
14

Tôi luôn gặp lỗi khi sử dụng chế độ flymake. Và chế độ flymake-turn tắt.Làm thế nào để kiểm tra xem chế độ phụ (.e.g chế độ flymake) có bật không?

enter image description here

Vì vậy, tôi muốn kiểm tra xem flymake-mode được bật lên. Nếu nó không được bật, tôi sẽ bật nó lên trước khi gọi flymake-next-error.

Cảm ơn.

+0

Nếu bạn gặp lỗi khi bật tính năng này, bạn dự định đạt được gì từ việc kiểm tra? –

+1

Theo trang chủ của nó (http://flymake.sourceforge.net/), flymake là một chế độ nhỏ, không phải là một chế độ chính. –

+0

Cảm ơn. Các lỗi không xảy ra tất cả các thời gian. Nó xảy ra Khi tập tin js của tôi có rất nhiều thất bại. Và flymake là một chế độ nhỏ. – coordinate

Trả lời

22

Hầu hết các chế độ phụ được xác định bằng cách sử dụng macro define-minor-mode. Đối với các chế độ đệm-cục bộ, macro đó tạo một biến bộ đệm cục bộ có cùng tên với chính chế độ . Biến này không phải là nil khi chế độ được kích hoạt cho bộ đệm hiện tại.

Do đó để kiểm tra xem flymake-mode được bật, bạn có thể kiểm tra biến flymake-mode (lưu ý rằng biến này có thể không được xác định ở tất cả nếu chế độ chưa được kích hoạt):

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

nào, như Thom điểm ra trong các ý kiến, có thể được thể hiện bằng cách sử dụng vĩ mô thuận tiện:

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

nào chúng ta có thể sử dụng như là điều kiện để một biểu if hoặc when hoặc unless:

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

Đối với chế độ nhỏ toàn cầu, biến tương ứng là toàn cầu; nhưng chế độ flymake là bộ đệm cục bộ.

+0

Cảm ơn. Đó là lỗi của tôi. Flymake không phải là một chế độ chính, nhưng là một chế độ nhỏ. – coordinate

+3

Thử nghiệm ở đây có thể được rút gọn thành chỉ '(chế độ flymake-bound-and-true-p)'. – Thom

Các vấn đề liên quan