J'ai suivi les deux didacticiels suivants pour essayer de configurer eslint
et Neomake
:
J'ai donc le minimum suivant init.vim
call plug#begin('~/.vim/plugged')
Plug 'neomake/neomake'
call plug#end()
autocmd! BufWritePost,BufEnter * Neomake
let g:neomake_verbose=3
let g:neomake_open_list = 2
let g:neomake_javascript_enabled_makers = ['eslint']
" neomake
nmap <Leader><Space>o :lopen<CR> " open location window
nmap <Leader><Space>c :lclose<CR> " close location window
nmap <Leader><Space>, :ll<CR> " go to current error/warning
nmap <Leader><Space>n :lnext<CR> " next error/warning
nmap <Leader><Space>p :lprev<CR> " previous error/warning
Le problème est lorsque j'enregistre se Neomake
bloque avec le message suivant:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
Si j'exécute cette commande manuellement en dehors de nvim
comme ça:
eslint -f compact /home/otis/Developer/test/index.js
Je reçois la sortie suivante:
/home/otis/Developer/test/index.js: line 1, col 1, Error - Unexpected var, use let or const instead. (no-var)
/home/otis/Developer/test/index.js: line 1, col 5, Error - 'a' is defined but never used. (no-unused-vars)
/home/otis/Developer/test/index.js: line 1, col 9, Error - Strings must use singlequote. (quotes)
3 problems
Ce qui est bien, cela signifie que cela eslint
fonctionne, mais je n'en retire rien Neomake
.
Si j'exécute :lopen
la fenêtre apparaît et se ferme instantanément comme ci-dessous:
Mon vim
/ nvim
connaissance est assez basique donc s'il vous plaît être explicite dans les réponses.
:lopen
copie d' écran lorsque vous exécutez Neomake s'exécute pour ce tampon en raison de l'autocmd pour BufEnter. L'extrait @Yonsy est bon, mais devrait en outre être limité aux fichiers JavaScript uniquement:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
autocmd! BufWritePost,BufEnter * Neomake
enaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END
BufEnter n'ont pas beaucoup de sens