on the fly Python checking in Vim with PyFlakes
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


WARNING: DEPRECATED! pyflakes-vim is officially deprecated!

The features of pyflakes-vim have been merged into other more widely-used and updated tools.

If you're using vim 8.0 or neovim, try ALE and flakes8 instead.

On older vims you can try Syntastic.


A Vim plugin for checking Python code on the fly.

PyFlakes catches common Python errors like mistyping a variable name or accessing a local before it is bound, and also gives warnings for things like unused imports.

pyflakes-vim uses the output from PyFlakes to highlight errors in your code. To locate errors quickly, use quickfix commands like :cc.

Make sure to check vim.org for the latest updates.

Quick Installation

  1. Make sure your .vimrc has:

    filetype on            " enables filetype detection
    filetype plugin on     " enables filetype specific plugins
  2. Download the latest release.

  3. If you're using pathogen, unzip the contents of pyflakes-vim.zip into its own bundle directory, i.e. into ~/.vim/bundle/pyflakes-vim/.

    Otherwise unzip pyflakes.vim and the pyflakes directory into ~/.vim/ftplugin/python (or somewhere similar on your runtime path that will be sourced for Python files).


Some tiny tests with:

pip install -r test-requirements.txt
py.test ftplugin/python/test_flaker.py

Running from source

If you're running pyflakes-vim "from source," you'll need the PyFlakes library on your PYTHONPATH somewhere. (It is included in the vim.org zipfile.) I recommend getting the github.com/pyflakes PyFlakes fork, which retains column number information, giving more specific error locations.


git clone --recursive git://github.com/kevinw/pyflakes-vim.git

or use the PyFlakes submodule:

git clone git://github.com/kevinw/pyflakes-vim.git
cd pyflakes-vim
git submodule init
git submodule update


Set this option in your vimrc file to disable quickfix support:

let g:pyflakes_use_quickfix = 0

The value is set to 1 by default.

Pyflakes can use Python 2 or Python 3 compiled into Vim. If you have both, you can ask Pyflakes to prefer one or the other, with this in your vimrc:

let g:pyflakes_prefer_python_version = 3


let g:pyflakes_prefer_python_version = 2

Pyflakes will chose Python 2 by default, if you have both. If you prefer a version that you don't have, Pyflakes will quietly fall back to the version that you do have.


  • signs support (show warning and error icons to left of the buffer area)
  • configuration variables
  • parse or intercept useful output from the warnings module


Please see http://www.vim.org/scripts/script.php?script_id=2441 for a history of all changes.