X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/a0733502b1c08eb172081b012cf96cde9e262d7a..c7cd8a4be43b26e91ce7a27954f5300910657fe2:/README.mdown?ds=inline diff --git a/README.mdown b/README.mdown index 4db8b3b..5d4e00c 100644 --- a/README.mdown +++ b/README.mdown @@ -5,17 +5,27 @@ 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). +[Flake8](https://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. + +Make sure you've installed the +[flake8](https://pypi.python.org/pypi/flake8/) package. + +If you use vim >= 8, install this plugin with: +``` +mkdir -p ~/.vim/pack/flake8/start/ +cd ~/.vim/pack/flake8/start/ +git clone https://github.com/nvie/vim-flake8.git +``` + +Otherwise, install [vim-pathogen](https://github.com/tpope/vim-pathogen) +if you're not using it already. Then, simply put the +contents of this repository in your `~/.vim/bundle` directory. Usage ----- @@ -25,6 +35,11 @@ Usage It shows the errors inside a quickfix window, which will allow your to quickly jump to the error locations by simply pressing [Enter]. +If any of `g:flake8_show_in_gutter` or `g:flake8_show_in_file` are set to `1`, call: + + call flake8#Flake8UnplaceMarkers() + +To remove all markers. No default mapping is provided. Customization ------------- @@ -32,60 +47,147 @@ If you don't want to use the `` key for flake8-checking, simply remap it to another key. It autodetects whether it has been remapped and won't register the `` key if so. For example, to remap it to `` instead, use: - autocmd FileType python map :call Flake8() + autocmd FileType python map :call flake8#Flake8() -To add builtins, in your .vimrc: +For flake8 configuration options please consult the following page: - let g:flake8_builtins="_,apply" +http://flake8.pycqa.org/en/latest/user/configuration.html -To ignore errors, in your .vimrc: +To customize the location of your flake8 binary, set `g:flake8_cmd`: - let g:flake8_ignore="E501,W293" + let g:flake8_cmd="/opt/strangebin/flake8000" -If you want to change the max line length for PEP8: +To customize the location of quick fix window, set `g:flake8_quickfix_location`: - let g:flake8_max_line_length=99 + let g:flake8_quickfix_location="topleft" -To set the maximum [McCabe complexity](https://en.wikipedia.org/wiki/Cyclomatic_complexity) before a warning is issued: +To customize the height of quick fix window, set `g:flake8_quickfix_height`: - let g:flake8_max_complexity=10 + let g:flake8_quickfix_height=7 -To customize the location of your flake8 binary, set `g:flake8_cmd`: +To customize whether the quickfix window opens, set `g:flake8_show_quickfix`: - let g:flake8_cmd="/opt/strangebin/flake8000" + let g:flake8_show_quickfix=0 " don't show + let g:flake8_show_quickfix=1 " show (default) -To customize the location of quick fix window, set `g:flake8_quickfix_location`: +To customize whether the show signs in the gutter, set `g:flake8_show_in_gutter`: - let g:flake8_quickfix_location="topleft" + let g:flake8_show_in_gutter=0 " don't show (default) + let g:flake8_show_in_gutter=1 " show + +To customize whether the show marks in the file, set `g:flake8_show_in_file`: + + let g:flake8_show_in_file=0 " don't show (default) + let g:flake8_show_in_file=1 " show + +To customize the number of marks to show, set `g:flake8_max_markers`: + + let g:flake8_max_markers=500 " (default) + +To customize the gutter markers, set any of `flake8_error_marker`, `flake8_warning_marker`, +`flake8_pyflake_marker`, `flake8_complexity_marker`, `flake8_naming_marker`. Setting one to +the empty string disables it. Ex.: + + flake8_error_marker='EE' " set error marker to 'EE' + flake8_warning_marker='WW' " set warning marker to 'WW' + flake8_pyflake_marker='' " disable PyFlakes warnings + flake8_complexity_marker='' " disable McCabe complexity warnings + flake8_naming_marker='' " disable naming warnings + +To customize the colors used for markers, define the highlight groups, `Flake8_Error`, +`Flake8_Warning`, `Flake8_PyFlake`, `Flake8_Complexity`, `Flake8_Naming`: + + " to use colors defined in the colorscheme + highlight link Flake8_Error Error + highlight link Flake8_Warning WarningMsg + highlight link Flake8_Complexity WarningMsg + highlight link Flake8_Naming WarningMsg + highlight link Flake8_PyFlake WarningMsg 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)!): +[Godefroid](https://github.com/gotcha)!): - autocmd BufWritePost *.py call Flake8() + autocmd BufWritePost *.py call flake8#Flake8() This plugin goes well together with the following plugin: -- [PyUnit](http://github.com/nvie/vim-pyunit) (unit test helper under `` +- [PyUnit](https://github.com/nvie/vim-pyunit) (unit test helper under `` and ``) +Max line lengths +---------------- + +One particular customization a lot of people like to make is relaxing the +maximum line length default. This is a config setting that should be set in +flake8 itself. (vim-flake8 "just" invokes it and deals with showing the output +in Vim's quickfix window.) + +To do so, put the following into your `~/.config/flake8` file: + + [flake8] + max-line-length = 120 + + History ------- +1.6: Deprecated configuring flake8 options through Vim settings. Instead, +advise users to use the `~/.config/flake8` config file. + + - Decprecated options: + - `g:flake8_builtins` + - `g:flake8_ignore` + - `g:flake8_max_line_length` + - `g:flake8_max_complexity` + + - New options: + - `g:flake8_quickfix_height` + +1.5: Added markers and the option to don't show the quickfix window, also split +functions into a autoload file. Added: + + - Options: + - `g:flake8_show_quickfix` + - `g:flake8_show_in_gutter` + - `g:flake8_show_in_file` + - `g:flake8_max_markers` + - `flake8_error_marker` + - `flake8_warning_marker` + - `flake8_pyflake_marker` + - `flake8_complexity_marker` + - `flake8_naming_marker` + - Functions: + - `flake8#Flake8UnplaceMarkers()` + - `flake8#Flake8()` + - Highlighting: + - `Flake8_Error` + - `Flake8_Warning` + - `Flake8_Complexity` + - `Flake8_Naming` + - `Flake8_PyFlake` + +1.4: Suppress output to stdout. 1.3: Added the following options: - - `g:flake8_builtins="_,apply"` - - `g:flake8_max_complexity=10` + - `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"` + - `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. + + +License +------- + +Liberally licensed under BSD terms.