Passing options to pylint in an environment variable is an odd idea,
but you can make it work if you insist. This works:
export PYLINT_ARGS='--module-rgx=[a-zA-Z_][a-zA-Z0-9_]*$ --max-line-length 120 --indent-string=\t --disable=mixed-indentation,line-too-long,missing-docstring,too-many-public-methods,too-few-public-methods,import-error,no-name-in-module,not-callable,locally-disabled,bad-continuation'
This also works:
let g:syntastic_python_pylint_post_args =
\ '--module-rgx=''[a-zA-Z_][a-zA-Z0-9_]*$'' --max-line-length 120 --indent-string=''\t'' --disable=mixed-indentation,line-too-long,missing-docstring,too-many-public-methods,too-few-public-methods,import-error,no-name-in-module,not-callable,locally-disabled,bad-continuation'
And this works too:
let g:syntastic_python_pylint_post_args =
\ [ '--module-rgx='[a-zA-Z_][a-zA-Z0-9_]*$',
\ '--max-line-length', '120',
\ '--indent-string=\t',
\ '--disable=mixed-indentation,line-too-long,missing-docstring,' .
\ 'too-many-public-methods,too-few-public-methods,import-error,' .
\ 'no-name-in-module,not-callable,locally-disabled,bad-continuation' ]
The reason why these work and your attempts don't, has to do with
the way Vim's system() is implemented. Look at Vim's sources if you're
curious. Contrary to the popular belief it isn't really something you
could easily infer from the manual.
Back to your question, the easier way to handle all this is to put
all options in a configuration file. According to pylint's manual,
pylint will use the first file it can find out of:
* a file pointed to by the envirionment variable PYLINTRC
* ~/.pylintrc
* /etc/pylintrc
It won't look for a pylint.rc, either in the current directory, or
elsewhere, unless you explicitly use --rcfile=/path/to/pylint.rc .
/lcd