2009-08-11 21 views

回答

34

那麼,flymake只是尋找一個可執行的命令輸出預定義格式的行。

這就是:你可以因此,這是一個例子返回錯誤級別0做一個shell腳本,例如,將先後調用所有你想要的跳棋......

您還必須確保您的腳本結束我已經在 「pycheckers」 腳本來完成:

#!/bin/bash 

epylint "$1" 2>/dev/null 
pyflakes "$1" 
pep8 --ignore=E221,E701,E202 --repeat "$1" 
true 

有關的Emacs Lisp部分:

(when (load "flymake" t) 
    (defun flymake-pyflakes-init() 
    (let* ((temp-file (flymake-init-create-temp-buffer-copy 
       'flymake-create-temp-inplace)) 
     (local-file (file-relative-name 
      temp-file 
      (file-name-directory buffer-file-name)))) 
     (list "pycheckers" (list local-file)))) 
    (add-to-list 'flymake-allowed-file-name-masks 
      '("\\.py\\'" flymake-pyflakes-init))) 
+0

它的工作!謝謝! – dixon 2009-09-09 10:49:43

+0

雖然我可以看到錯誤,emacs 23並沒有顯示錯誤實際是什麼。你能幫我嗎? – RichieHH 2009-10-22 01:41:11

+0

參見emacs下的flymake手冊。你需要的是在線,並且:M-x flymake-display-err-menu-for-current-line。你可以將它綁定到一個鍵。 – vaab 2009-10-24 17:59:08

7

通常可以使flymake在Python模式掛機模式。不幸的是,這會導致像py-execute-buffer這樣的問題,這些問題會創建臨時緩衝區來調用掛鉤,然後由於缺少「真實文件」而導致flymake模式打嗝。解決的辦法是修改在其中添加掛鉤的條件: - e.g礦是:

(add-hook 'python-mode-hook 
     (lambda() 
     (unless (eq buffer-file-name nil) (flymake-mode 1)) ;dont invoke flymake on temporary buffers for the interpreter 
     (local-set-key [f2] 'flymake-goto-prev-error) 
     (local-set-key [f3] 'flymake-goto-next-error) 
     )) 
+0

你可能想添加'(local-set-key [f4]'flymake-display-err-menu-for-current-line)'' – 2013-04-16 13:01:43

0

vaab的pychechker

@echo on 
pylint %1 
pep8 --ignore=E221,E701,E202 --repeat %1 
pyflakes %1