[Vim 8.0.1 / Syntastic 3.9.0-19 / Vundle 0.5 / vint 0.3.19 on Arch Linux]

My vim linter seems to be broken and I don't quite understand why.
It's been working fine in its present configuration, until this morning.

I get the following error message, when I write any buffer identified as vim filetype to disk:

syntastic: warning: checker vim/vint: unrecognized error format (crashed checker?)

It is also the content of :messages in buffer.

"Startpage"-ing it returned zero relevant result.

The pertinent ~/.vimrc section ...

filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'vim-syntastic/syntastic'
Plugin 'Valloric/YouCompleteMe.git'
Plugin 'Townk/vim-autoclose' 
Plugin 'dougireton/vim-chef'
Plugin 'jimhester/lintr'
Plugin 'vim-scripts/LaTeX-Suite-aka-Vim-LaTeX'
Plugin 'Kuniwak/vint'
call vundle#end()
filetype plugin indent on

Syntastic is aware of $USER $PATH:

:echo syntastic#util#system('echo "$PATH"')

The runtime path includes Vundle:

:set runtimepath?

The cloned git repo in ~/.vim/bundle/Vundle.vim is up to date. The vint executable is correctly located at /usr/bin/vint and I inserted the following in ~/.vimrc:

  let g:syntastic_vim_checkers = ['vint']

so that issuing ex cmd :SyntasticInfo [vim] does yield vint and the correct filetype, "vim".

I am stumped. Has anybody seen this before ?

  • 1
    The error message probably means exactly what it says, either vint changed output format when I wasn't looking, or it just crashed. Feel free to post to the issue tracker if you jcare to find out what's going on. This isn't appropriate for Vi and Vim.
    – lcd047
    Oct 26, 2018 at 19:06
  • @lcd047: issue opened on github.com/vim-syntastic/syntastic/issues
    – Cbhihe
    Oct 26, 2018 at 21:11

1 Answer 1


The Kuniwak/vint lint checker breaks (im my setup) when parsing non-ASCII characters. It happens as soon as even one character outside the 0-127 ASCII range (plus a few such as "_", etc. ) appear in the vim-script, no matter where, i.e. inside or outside comments.

As suggested by @lcd047, I added debug option flags to my ~/.vimrc to catch more verbose messages:

"let g:syntastic_debug = 3
"let g:syntastic_debug_file = '~/.vim/syntastic.log'

The content of :messages revealed:

"/usr/lib/python3.7/site-packages/vint/encodings/decoding_strategy.py", line 77, in decode', ' return bytes_seq.decode(encoding=encoding_part.decode(encoding=''ascii''))', 'UnicodeDecodeError: ''ascii'' codec can''t decode byte 0xc2 in position 33: ordinal not in range(128)', '']

syntastic: warning: checker vim/vint: unrecognized error format (crashed checker?)

As it turns out, byte 0xc2 is the first byte of the two-byte non-ASCII character "º" that I had just mapped as in: inoremap <C-º> <Esc>.

The mapping worked just fine ... and vint just quit. In retrospect I find it curious that in support of the suspicion that vint was at fault, running :echo system('vint $USER/.vimrc --json') in-buffer, and $ vint $USER/.vimrc from console, produced the exact same error.

So I opened an issue at the vint GitHub repo.

In the end the Kuniwak/vint lint checker works fine. Another plugin causes an incompatibility and is at fault: Townk/vim-autoclose. It somehow makes vint crash when parsing non-ASCII characters. Also for instance, syntax highlighting groups targeting those same non-ASCIIs do not work when autoclose is loaded. It also causes weird results when used in conjunction with YouCompleteMe.

Solution: replace Townk/vim-autoclose with Raimondi/delimitMate.

  • Shouldn't you actually wait for the reply of author before posting your analyses left and right? For what it's worth, my vint can happily parse the line inoremap <C-º> <Esc>.
    – lcd047
    Oct 28, 2018 at 17:31
  • 1
    Since you can reproduce the problem in a terminal, this has nothing to do with Vim. Your vint installation is broken. If you ask nicely, vint's author will probably tell you how / why. Maybe claiming it's a feature was not a step in that direction.
    – lcd047
    Oct 28, 2018 at 18:57

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.