Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Flake8 plugin for Vim

branch: master


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 and vim-pep8.

Flake8 is a wrapper around PyFlakes (static syntax checker), PEP8 (style checker) and Ned's MacCabe script (complexity checker).


Use vim-pathogen if you're not using it already. Make sure you've installed the flake8 package. Then, simply put the contents of this repository in your ~/.vim/bundle directory.


  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].


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 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"


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!):

autocmd BufWritePost *.py call Flake8()

This plugin goes well together with the following plugin:

  • PyUnit (unit test helper under <F8> and <F9>)


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.

Something went wrong with that request. Please try again.