Wykonałem następujące dwa samouczki, aby spróbować skonfigurować eslint
i Neomake
:
Więc mam następujące minimum 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
Problem polega na tym, że gdy zapisuję, Neomake
zawiesza się następujący komunikat:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
Jeśli uruchomię to polecenie ręcznie poza tym nvim
sposobem:
eslint -f compact /home/otis/Developer/test/index.js
Otrzymuję następujące dane wyjściowe:
/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
Co dobrze, to znaczy, że eslint
działa, ale nic nie odzyskuję Neomake
.
Po uruchomieniu :lopen
okno wyskakuje, a następnie natychmiast się zamyka, jak poniżej:
Moja vim
/ nvim
wiedza jest dość podstawowa, więc proszę o wyraźne odpowiedzi.
neovim
quickfix
plugin-neomake
Otis Wright
źródło
źródło
autocmd! BufWritePost,BufEnter * Neomake
naaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END
BufEnter, nie masz wiele sensu:lopen
przesyłanym po uruchomieniu Neomake uruchamia się dla tego bufora z powodu autocmd dla BufEnter. @ Yonsy snippet jest dobry, ale powinien być dodatkowo ograniczony tylko do plików JavaScript:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
Odpowiedzi:
Niektóre [lekko edytowane] informacje z komentarzy:
źródło
To nie do końca odpowiada na twoje pytanie, ale odkryłem, że neomake działa lepiej z eslint_d . Ma to fajny efekt uboczny, że powinien także szybciej strzępić.
Najpierw musisz zainstalować eslint_d globalnie (ale nadal wydaje się, że pobiera dowolny
.eslintrc
plik lokalny ):Następnie dodaj następującą konfigurację dla neomake do swojego
init.vim
/.vimrc
:Dla mnie to wszystko, czego potrzebowałem, po ponownym uruchomieniu neovim i otwarciu pliku javascript uruchomione
:Neomake
ostrzeżenia eslint.źródło