All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
3 `vim-flake8` is a Vim plugin that runs the currently open file through Flake8,
4 a static syntax and style checker for Python source code. It supersedes both
5 [vim-pyflakes](https://github.com/nvie/vim-pyflakes) and
6 [vim-pep8](https://github.com/nvie/vim-pep8).
8 [Flake8](http://pypi.python.org/pypi/flake8/) is a wrapper around PyFlakes
9 (static syntax checker), PEP8 (style checker)
10 and Ned's MacCabe script (complexity checker).
15 Use [vim-pathogen](https://github.com/tpope/vim-pathogen) if you're not using
16 it already. Make sure you've installed the [flake8](http://pypi.python.org/pypi/flake8/) package.
17 Then, simply put the contents of this repository in your
18 `~/.vim/bundle` directory.
23 2. Press `<F7>` to run `flake8` on it
25 It shows the errors inside a quickfix window, which will allow your to quickly
26 jump to the error locations by simply pressing [Enter].
28 If any of `g:flake8_show_in_gutter` or `g:flake8_show_in_file` are set to `1`, call:
30 call flake8#Flake8UnplaceMarkers()
32 To remove all markers. No default mapping is provided.
36 If you don't want to use the `<F7>` key for flake8-checking, simply remap it to
37 another key. It autodetects whether it has been remapped and won't register
38 the `<F7>` key if so. For example, to remap it to `<F3>` instead, use:
40 autocmd FileType python map <buffer> <F3> :call Flake8()<CR>
42 To add builtins, in your .vimrc:
44 let g:flake8_builtins="_,apply"
46 To ignore errors, in your .vimrc:
48 let g:flake8_ignore="E501,W293"
50 If you want to change the max line length for PEP8:
52 let g:flake8_max_line_length=99
54 To set the maximum [McCabe complexity](https://en.wikipedia.org/wiki/Cyclomatic_complexity) before a warning is issued:
56 let g:flake8_max_complexity=10
58 To customize the location of your flake8 binary, set `g:flake8_cmd`:
60 let g:flake8_cmd="/opt/strangebin/flake8000"
62 To customize the location of quick fix window, set `g:flake8_quickfix_location`:
64 let g:flake8_quickfix_location="topleft"
66 To customize the height of quick fix window, set `g:flake8_quickfix_height`:
68 let g:flake8_quickfix_height=7
70 To customize whether the quickfix window opens, set `g:flake8_show_quickfix`:
72 let g:flake8_show_quickfix=0 " don't show
73 let g:flake8_show_quickfix=1 " show (default)
75 To customize whether the show signs in the gutter, set `g:flake8_show_in_gutter`:
77 let g:flake8_show_in_gutter=0 " don't show (default)
78 let g:flake8_show_in_gutter=1 " show
80 To customize whether the show marks in the file, set `g:flake8_show_in_file`:
82 let g:flake8_show_in_file=0 " don't show (default)
83 let g:flake8_show_in_file=1 " show
85 To customize the number of marks to show, set `g:flake8_max_markers`:
87 let g:flake8_max_markers=500 " (default)
89 To customize the gutter markers, set any of `flake8_error_marker`, `flake8_warning_marker`,
90 `flake8_pyflake_marker`, `flake8_complexity_marker`, `flake8_naming_marker`. Setting one to
91 the empty string disables it. Ex.:
93 flake8_error_marker='EE' " set error marker to 'EE'
94 flake8_warning_marker='WW' " set warning marker to 'WW'
95 flake8_pyflake_marker='' " disable PyFlakes warnings
96 flake8_complexity_marker='' " disable McCabe complexity warnings
97 flake8_naming_marker='' " disable naming warnings
99 To customize the colors used for markers, define the highlight groups, `Flake8_Error`,
100 `Flake8_Warning`, `Flake8_PyFlake`, `Flake8_Complexity`, `Flake8_Naming`:
102 " to use colors defined in the colorscheme
103 highlight link Flake8_Error Error
104 highlight link Flake8_Warning WarningMsg
105 highlight link Flake8_Complexity WarningMsg
106 highlight link Flake8_Naming WarningMsg
107 highlight link Flake8_PyFlake WarningMsg
111 A tip might be to run the Flake8 check every time you write a Python file, to
112 enable this, add the following line to your `.vimrc` file (thanks
113 [Godefroid](http://github.com/gotcha)!):
115 autocmd BufWritePost *.py call Flake8()
117 This plugin goes well together with the following plugin:
119 - [PyUnit](http://github.com/nvie/vim-pyunit) (unit test helper under `<F8>`
126 1.5: Added markers and the option to don't show the quickfix window, also split functions into
127 a autoload file. Added:
130 - `g:flake8_show_quickfix`
131 - `g:flake8_show_in_gutter`
132 - `g:flake8_show_in_file`
133 - `g:flake8_max_markers`
134 - `flake8_error_marker`
135 - `flake8_warning_marker`
136 - `flake8_pyflake_marker`
137 - `flake8_complexity_marker`
138 - `flake8_naming_marker`
140 - `flake8#Flake8UnplaceMarkers()`
145 - `Flake8_Complexity`
149 1.4: Suppress output to stdout.
151 1.3: Added the following options:
153 - `g:flake8_builtins="_,apply"`
154 - `g:flake8_max_complexity=10`
156 1.2: Added the following options:
158 - `g:flake8_cmd="/opt/strangebin/flake8000"`
159 - `g:flake8_max_line_length=120`
160 - `g:flake8_ignore="E501,W293"`
162 1.1: Added `g:flake8_ignore` option.
164 1.0: Initial version.
170 Liberally licensed under BSD terms.