我如何使用Emacs Flymake模式与pyflakes Python和pylint的校验码?
题
有关在python模式校验码我使用flymake与 pyflakes
此外想检查码样式(PEP8)与pylint的(与pyflakes在同一页上的描述)
此解决方案的工作。 但我不能配置与pyflakes工作flymake和pylint的一起。 我该怎么办呢?
解决方案
那么,flymake只是寻找在一个预定义的格式的可执行命令这就是输出线。你可以做,例如一个shell脚本,将先后调用所有你想要的跳棋......
您还必须确保你的脚本由结束所以这是一个例子返回错误级别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)))
其他提示
通常,一个可以使在Python模式挂机flymake模式。不幸的是,导致事情像它创造出调用钩,然后使flymake模式,因为缺乏“真实文件”的打嗝临时缓冲区PY-执行缓冲的问题。该解决方案是修改在其中添加所述钩的条件: - 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)
))
您可能想看看这里的Lisp的脚本(的 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
不隶属于 StackOverflow