On a .python file, I see the following for :ALEInfo

 Current Filetype: python
Available Linters: ['flake8', 'mypy', 'prospector', 'pycodestyle', 'pydocstyle', 'pyflakes', 'pylint', 'pyls', 'pyre', 'vulture']
  Enabled Linters: ['flake8', 'mypy', 'pylint']

Why is pycodestyle not enabled? Is there a way I can automatically enable it for all python files? I have pycodestyle already installed with pip, from the command line I can do pycodestyle . and it works.

2 Answers 2


I just found out that only flake8, mypy and pylint are enabled by default. I was trying to find out before but couldn't until someone pointed to


or :help ale_linters

In order to enable new linters, I need to set:

let g:ale_linters = {'python': ['pycodestyle']}

The doc above has this part:

  The |g:ale_linters| option sets a |Dictionary| mapping a filetype to a
  |List| of linter programs to be run when checking particular filetypes.

  This |Dictionary| will be merged with a default dictionary containing the
  following values: >

  \   'csh': ['shell'],
  \   'elixir': ['credo', 'dialyxir', 'dogma', 'elixir-ls'],
  \   'go': ['gofmt', 'golint', 'go vet'],
  \   'hack': ['hack'],
  \   'help': [],
  \   'perl': ['perlcritic'],
  \   'perl6': [],
  \   'python': ['flake8', 'mypy', 'pylint'],
  \   'rust': ['cargo'],
  \   'spec': [],
  \   'text': [],
  \   'vue': ['eslint', 'vls'],
  \   'zsh': ['shell'],

One thing you should be aware of: flake8 invokes pycodestyle and pyflakes. So configuring ale to run flake8 and either of those two will lead to duplicate warnings:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.