autopep8与vim

时间:2013-03-08 01:12:35

标签: python vim pep8

有没有办法自动将autopep8应用于vim中正在编辑的文件?我有以下vimrc

提前谢谢。

4 个答案:

答案 0 :(得分:18)

使用autopep8的正确方法是依靠vim" formatprg"设置。所以你将下面的行添加到vimrc:

au FileType python setlocal formatprg=autopep8\ -

现在,当您在python中选择行并点击gq时(默认映射除非您重新映射它)。它将通过autopep8过滤行,并将格式良好的版本写入到位。

上面的设置也使它适用于vim对象和vim运动,所以你可以使用gqap重新渲染一段(python代码的线条之间没有空行)。

要执行整个文件,您可以执行gggqG

连字符' - '在命令结束时需要使autopep8读取标准中的行。

答案 1 :(得分:6)

autopep8包含在python-mode中。

调用:PymodeLintAuto或映射它:

" Automatically fix PEP8 errors in the current buffer:
noremap <F8> :PymodeLintAuto<CR>

答案 2 :(得分:4)

您应该能够通过autopep8运行当前文件:

:!autopep8 -i expand("%")

如果你想在每个python文件的写入时自动执行此操作,可以将其添加到vimrc

if has("autocmd")
    autocmd BufWritePost *.py !autopep8 -i expand("%")
endif

答案 3 :(得分:3)

插件在提交问题时尚未存在,但现在有vim-autopep8。

https://github.com/tell-k/vim-autopep8