私はpyflakespyflakesとpylintのチェックコードでPythonにEmacs Flymakeモードを使用するにはどうすればいいですか? Pythonのモードでコードをチェックするための
でflymakeを使用また、私はこのソリューションの作業pylint(pyflakesと同じページに記述)
でコードスタイル(pep8)をチェックします。 しかし、私はpyflakesとpylintを一緒に使ってflymakeを設定することはできません。 どうすればいいですか?
私はpyflakespyflakesとpylintのチェックコードでPythonにEmacs Flymakeモードを使用するにはどうすればいいですか? Pythonのモードでコードをチェックするための
でflymakeを使用また、私はこのソリューションの作業pylint(pyflakesと同じページに記述)
でコードスタイル(pep8)をチェックします。 しかし、私はpyflakesとpylintを一緒に使ってflymakeを設定することはできません。 どうすればいいですか?
まあ、flymakeは、出力行をあらかじめ定義された形式で出力する実行可能なコマンドを探しているだけです。あなたはまた、あなたのスクリプトがエラーレベル0を返すことによって終了することを確認する必要があり...
を連続的にしたいすべてのチェッカーを呼び出します例えばシェルスクリプトを作ることができるので、これは一例です:
です私が "pycheckers" スクリプトでやった:Emacs用
#!/bin/bash
epylint "$1" 2>/dev/null
pyflakes "$1"
pep8 --ignore=E221,E701,E202 --repeat "$1"
true
は一部を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)))
ここでLispスクリプト(http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html)をチェックして、PEP8 a la pep8.pyのチェックに役立てることができます。私はpyflakesやpylintを使用しませんが、他のチェッカーと一緒に使うためにこれを簡単に調整できると思います。
私はpep8.py.を使用してみてください同じ問題 - 私は2つの設定をマージすることはできません。 1つだけ作業する - pyflakesまたはpep8.py。 – dixon
通常1のpython-モードフックでflymakeモードを有効にすることができます。残念ながら、py-execute-bufferなどのフックを起動する一時バッファを作成し、「実際のファイル」がないためにフライメイクモードが正常に動作しないなどの問題が発生します。解決策は、あなたがフックを追加条件を変更することである: - 例えば鉱山がある:
(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)
))
'(local-set-key [f4] 'flymake-display-err-menu-for-current-line)'を追加することもできます –
vaabののWindowsバッチバージョンpychechker
@echo on
pylint %1
pep8 --ignore=E221,E701,E202 --repeat %1
pyflakes %1
それは動作します!ありがとう! – dixon
エラーが発生するのを見ることができますが、emacs 23はエラーが実際に何であるか表示していません。手伝ってくれますか? – RichieHH
emacsの下でflymakeのマニュアルを参照してください。あなたが必要とするものは、ライン上にあり、M-x flymake-display-err-menu-for-current-lineです。これをキーにバインドすることができます。 – vaab