4 个回答
4
你可以这样做,把当前文件通过autopep8处理一下:
:!autopep8 -i expand("%")
如果你想在每次保存Python文件时自动进行这个处理,可以把下面的内容添加到你的vimrc
文件里:
if has("autocmd")
autocmd BufWritePost *.py !autopep8 -i expand("%")
endif
8
autopep8 是包含在 python-mode 这个插件里的。
你可以通过调用 :PymodeLintAuto 来使用它,或者给它设置一个快捷键:
" Automatically fix PEP8 errors in the current buffer:
noremap <F8> :PymodeLintAuto<CR>
27
使用autopep8的正确方法是依赖vim的“formatprg”设置。所以你需要在vimrc文件中添加下面这一行:
au FileType python setlocal formatprg=autopep8\ -
现在,当你在Python代码中选择几行,然后按下gq
(这是默认的快捷键,除非你自己改了)。这样就会通过autopep8
处理这些行,并把格式化好的代码直接写回去。
上面的设置还可以和vim中的对象和动作一起使用,所以你可以用gqap
来重新格式化一段代码(就是没有空行的Python代码行)。
如果想要格式化整个文件,可以使用gggqG
。
命令末尾的短横线'-'是必须的,这样才能让autopep8从标准输入读取代码行。