flymakeライクなvimプラグインの続き(with pep8.py)
Posted on Thu, 13 Aug 2009 00:42:45 +0900
Reddit経由 で 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みたいに見えちゃうので。)