Vint is a Vim script Language Lint. The goal to reach for Vint is:
- Highly extensible
- Highly customizable
- High performance
But now, Vint is under development. We hope you develop a policy to help us.
You can install with pip.
$ pip install vim-vint
You can use Vint with vim-syntastic/syntastic:
let g:syntastic_vim_checkers = ['vint']
Vint will read config files on the following priority order:
- User config:
- e.g.
~/.vintrc.yaml
(the filename can be.vintrc.yml
or.vintrc
) - Project config:
- e.g.
path/to/proj/.vintrc.yaml
(the filename can be.vintrc.yml
or.vintrc
) - Command line config:
- e.g.
$ vint --error
,$ vint --max-violations 10
- Comment config (highest priority):
- e.g.
" vint: -ProhibitAbbreviationOption +ProhibitSetNoCompatible
You can see all options on Wiki.
The default configuration is defined in default_config.yaml.
You can configure global Vint config by ~/.vintrc.yaml
as following:
cmdargs:
# Checking more strictly
severity: style_problem
# Enable coloring
color: true
# Enable Neovim syntax
env:
neovim: true
policies:
# Disable a violation
ProhibitSomethingEvil:
enabled: false
# Enable a violation
ProhibitSomethingBad:
enabled: true
You can see all policy names on Vint linting policy summary.
You can configure project local Vint config by .vintrc.yaml
as
following:
cmdargs:
# Checking more strictly
severity: style_problem
# Enable coloring
color: true
# Enable Neovim syntax
env:
neovim: true
policies:
# Disable a violation
ProhibitSomethingEvil:
enabled: false
# Enable a violation
ProhibitSomethingBad:
enabled: true
You can see all policy names on Vint linting policy summary.
You can configure linting severity, max errors, ... as following:
$ vint --color --style ~/.vimrc
And you can see all available options by using --help:
$ vint --help usage: vint [-h] [-v] [-V] [-e] [-w] [-s] [-m MAX_VIOLATIONS] [-c] [--no-color] [-j] [-t] [--enable-neovim] [-f FORMAT] [--stdin-display-name STDIN_DISPLAY_NAME] [files [files ...]] Lint Vim script positional arguments: files file or directory path to lint optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit -V, --verbose output verbose message -e, --error report only errors -w, --warning report errors and warnings -s, --style-problem report errors, warnings and style problems -m MAX_VIOLATIONS, --max-violations MAX_VIOLATIONS limit max violations count -c, --color colorize output when possible --no-color do not colorize output -j, --json output json style -t, --stat output statistic info --enable-neovim enable Neovim syntax -f FORMAT, --format FORMAT set output format --stdin-display-name STDIN_DISPLAY_NAME specify a file path that is used for reporting when linting standard inputs
You can enable/disable linting policies by a comment as following:
" vint: -ProhibitAbbreviationOption
let s:save_cpo = &cpo
set cpo&vim
" vint: +ProhibitAbbreviationOption
" do something...
" vint: -ProhibitAbbreviationOption
let &cpo = s:save_cpo
unlet s:save_cpo
And you can use line config comments. It can enable/disable linting policies in only one line by the postfix comment:
" vint: next-line -ProhibitUnusedVariable
let s:foobar = 'x'
echo s:{'foo' . 'bar'}
This syntax is: " vint: [next-line] [+-]<PolicyName> [+-]<PolicyName> .... You can see all policy names on Vint linting policy summary.