flymakeライクなvimプラグインの続き(with pep8.py)
2009-08-13 - ⧖ 2.0 minReddit経由 で PEP8な形式に従っているかをチェックする pep8.pyというのがある と知った。
以前紹介したflymakeライク(quickfix)なvimプラグイン に組み込んで 使えるようにしてみた。ついでにquickfixのON/OFFのトグル設定とmakeに 使用するプログラムをpylint,pyflakes,pep8.pyの中で切り替えれるようにしてみた。
"" flyquickfixmake.vim (Modified to Python)
"" [Install] copy to $HOME/.vim/ftplugin/python/
"" [Require] pylint,pyflakes,pep8.py
function ! FlyquickfixPrgSet ( mode )
if a: mode == 0
""" setting for pylint
setlocal makeprg = /usr/bin/pylint\ --rcfile=$HOME/.pylint\ -e\ %
setlocal errorformat = %t:%l:%m
echo "flymake prg: pylint"
elseif a: mode == 1
""" setting for pyflakes
setlocal makeprg = /usr/local/bin/pyflakes\ %
setlocal errorformat = %f:%l:%m
echo "flymake prg: pyflakes"
else
""" setting for pep8.py
setlocal makeprg = /usr/local/bin/pep8.py\ %
setlocal errorformat = %f:%l:%c:%m
echo "flymake prg: pep8.py"
endif
endfunction
function ! FlyquickfixToggleSet ()
if g: python_flyquickfixmake == 1
au ! BufWritePost
echo "not-used flymake"
let g: python_flyquickfixmake = 0
else
echo "used flymake"
let g: python_flyquickfixmake = 1
au BufWritePost * .py make
endif
endfunction
if ! exists ( "g:python_flyquickfixmake" )
let g: python_flyquickfixmake = 1
call FlyquickfixPrgSet ( 8 )
"au BufWritePost *.py silent make
au BufWritePost * .py make
endif
map fs :call FlyquickfixToggleSet()< CR >
map pl :call FlyquickfixPrgSet(0)< CR >
map pf :call FlyquickfixPrgSet(1)< CR >
map p8 :call FlyquickfixPrgSet(8)< CR >
http://www.hexacosa.net/hgrepos/my-dot-vim/file/2b0b8dadb0e1/ftplugin/python/flyquickfixmake.vim
pl " pylintに切り替え
pf " pyflakesに切り替え
p8 " pep8.pyに切り替え
fs " quickfixのON/OFF
au BufWritePostを無効にするやり方を調べるのに一番時間がかかるという...
2009.11.04: タイトルを修正しました。(pep8.pyだけだとこのスクリプト自体がpep8.pyみたいに見えちゃうので。)