11

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

先感谢您。

4

4 回答 4

24

使用 autopep8 的正确方法是依赖 vim "formatprg" 设置。因此,您将下面的行添加到 vimrc:

au FileType python setlocal formatprg=autopep8\ -

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

上面的设置还使其适用于 vim 对象和 vim 动作,因此您可以使用gqap.

做你可以做的整个文件gggqG

命令末尾的连字符“-”是使 autopep8 从标准中读取行所必需的。

于 2014-05-20T14:33:09.613 回答
7

autopep8 包含在python-mode中。

调用 :PymodeLintAuto 或映射它:

" Automatically fix PEP8 errors in the current buffer:
noremap <F8> :PymodeLintAuto<CR>
于 2013-03-08T08:38:18.503 回答
4

您应该能够执行以下操作以通过 autopep8 运行当前文件:

:!autopep8 -i expand("%")

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

if has("autocmd")
    autocmd BufWritePost *.py !autopep8 -i expand("%")
endif
于 2013-03-08T08:31:07.677 回答
3

提交问题时该插件还不存在,但现在有 vim-autopep8。

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

于 2015-10-15T13:04:53.400 回答