どのように私は、Emacs Flymakeモードはpyflakesとpylintチェックコードとのpythonのために使用することができますか?

StackOverflow https://stackoverflow.com/questions/1259873

質問

のpythonモードでコードを確認するために私は pyflakes のでflymake使用します

また、私はpylint(pyflakesと同じページに記述)

とのコードスタイル(pep8)をチェックしたいです

このソリューションが動作します。 しかし、私はpyflakesと一緒にpylintとの仕事のためflymakeを設定することはできません。 どのように私はそれを行うことができますか?

役に立ちましたか?

解決

さて、flymakeは単に所定のフォーマットで出力ラインthatsの実行コマンドを探しています。あなたは、連続的に、あなたが望むすべてのチェッカーを呼び出します例えばシェルスクリプトを作ることができます...

また、だから、これは一例でありERRORLEVEL 0を返すことにより、スクリプトが終了したことを確認する必要があります:

これは、私が「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)))

他のヒント

通常1のpython-モードフックでflymakeモードを有効にすることができます。残念ながらフックを起動して、ため、「本当のファイル」の欠如のしゃっくりするモードをflymake原因一時的なバッファを作成PY-実行バッファのようなもので問題が発生しています。解決策は、あなたがフックを追加条件を変更することである: - 例えば鉱山があります:

(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)
        ))

あなたは<(ここではLispのスクリプトをチェックアウトすることができますのhref = "http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.htmlチェックを支援すべきである "のrel =" nofollowをさnoreferrer "> http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html の)、 PEP8ア・ラ・pep8.py.私はpyflakesまたはpylintを使用していないが、私はあなたが簡単に他のチェッカーで動作するように、これを調整することができます想像してみてください。

vaabのpychechkerのWindowsバッチバージョン

@echo on
pylint %1
pep8 --ignore=E221,E701,E202 --repeat %1
pyflakes %1
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top