Flake8-vim is a Vim plugin that checks python sources for errors. It's based on pylint-mode plugin by Kirill Klenov.
Clone plugin repository using Git:
git clone --recursive https://github.com/andviro/flake8-vim.git
Copy ftplugin
folder into your Vim home directory.
Install Vundle, then run bundle install command:
BundleInstall andviro/flake8-vim
Alternatively install Neobundle and load plugin using command:
NeoBundleInstall andviro/flake8-vim
By default python source code is checked with frosted, pep8 and mccabe code complexity utility. The following options can be configured through global variables in .vimrc:
Auto-check file for errors on write:
let g:PyFlakeOnWrite = 1
List of checkers used:
let g:PyFlakeCheckers = 'pep8,mccabe,frosted'
Default maximum complexity for mccabe:
let g:PyFlakeDefaultComplexity=10
List of disabled pep8 warnings and errors:
let g:PyFlakeDisabledMessages = 'E501'
Default aggressiveness for autopep8:
let g:PyFlakeAggressive = 0
Default height of quickfix window:
let g:PyFlakeCWindow = 6
Whether to place signs or not:
let g:PyFlakeSigns = 1
When usign signs, this is the first id that will be used to identify the signs. Tweak this if you are using other plugins that also use the sign gutter
let g:PyFlakeSignStart = 1
Maximum line length for PyFlakeAuto command
let g:PyFlakeMaxLineLength = 100
Visual-mode key command for PyFlakeAuto
let g:PyFlakeRangeCommand = 'Q'
Force python 3 interface:
let g:PyFlakeForcePyVersion = 3
Disable/enable automatic checking of current file
:PyFlakeToggle
Run checks for current file
:PyFlake
Auto-fix pep8 errors for current file
:PyFlakeAuto
PyFlakeAuto
command by default works with the whole file, but also accepts
line ranges. Select some lines in Python code, then use :'<,'>PyFlakeAuto
to
re-format and fix pep8 errors for them. For every Python buffer Visual-mode
shortcut is added to quickly fix selection ('Q' by default). Set global
variable g:PyFlakeRangeCommand
in .vimrc to change the key sequence. To
disable visual mode mapping, set this variable to empty string.
Andrew Rodionoff (@andviro)