vim-flake8
==========
`vim-flake8` is a Vim plugin that runs the currently open file through Flake8,
a static syntax and style checker for Python source code.  It supersedes both
[vim-pyflakes](https://github.com/nvie/vim-pyflakes) and
[vim-pep8](https://github.com/nvie/vim-pep8).

[Flake8](http://pypi.python.org/pypi/flake8/) is a wrapper around PyFlakes 
(static syntax checker), PEP8 (style checker) 
and Ned's MacCabe script (complexity checker).


Installation
------------
Use [vim-pathogen](https://github.com/tpope/vim-pathogen) if you're not using
it already.  Make sure you've installed the [flake8](http://pypi.python.org/pypi/flake8/) package.
Then, simply put the contents of this repository in your
`~/.vim/bundle` directory.

Usage
-----
1. Open a Python file
2. Press `<F7>` to run `flake8` on it

It shows the errors inside a quickfix window, which will allow your to quickly
jump to the error locations by simply pressing [Enter].


Customization
-------------
If you don't want to use the `<F7>` key for flake8-checking, simply remap it to
another key.  It autodetects whether it has been remapped and won't register
the `<F7>` key if so.  For example, to remap it to `<F3>` instead, use:

    autocmd FileType python map <buffer> <F3> :call Flake8()<CR>

To add builtins, in your .vimrc:

    let g:flake8_builtins="_,apply"

To ignore errors, in your .vimrc:

    let g:flake8_ignore="E501,W293"

If you want to change the max line length for PEP8:

    let g:flake8_max_line_length=99

To set the maximum [McCabe complexity](https://en.wikipedia.org/wiki/Cyclomatic_complexity) before a warning is issued:

    let g:flake8_max_complexity=10

To customize the location of your flake8 binary, set `g:flake8_cmd`:

    let g:flake8_cmd="/opt/strangebin/flake8000"


Tips
----
A tip might be to run the Flake8 check every time you write a Python file, to
enable this, add the following line to your `.vimrc` file (thanks
[Godefroid](http://github.com/gotcha)!):

    autocmd BufWritePost *.py call Flake8()

This plugin goes well together with the following plugin:

- [PyUnit](http://github.com/nvie/vim-pyunit) (unit test helper under `<F8>`
  and `<F9>`)


History
-------

1.3: Added the following options:

     - `g:flake8_builtins="_,apply"`
     - `g:flake8_max_complexity=10`

1.2: Added the following options:

     - `g:flake8_cmd="/opt/strangebin/flake8000"`
     - `g:flake8_max_line_length=120`
     - `g:flake8_ignore="E501,W293"`

1.1: Added `g:flake8_ignore` option.

1.0: Initial version.