Neomake wisi podczas używania szyny

11

Wykonałem następujące dwa samouczki, aby spróbować skonfigurować eslinti 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ę, Neomakezawiesza 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 nvimsposobem:

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 eslintdziała, ale nic nie odzyskuję Neomake.

Po uruchomieniu :lopenokno wyskakuje, a następnie natychmiast się zamyka, jak poniżej:

Okno otwórz, a następnie zamknij

Moja vim/ nvimwiedza jest dość podstawowa, więc proszę o wyraźne odpowiedzi.

Otis Wright
źródło
spróbuj zmienić autocmd! BufWritePost,BufEnter * Neomakena augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END BufEnter, nie masz wiele sensu
Yonsy Solis,
W rzeczywistości może to być przyczyną pustego okna szybkiej poprawki. Na ekranie :lopenprzesył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
grodzik

Odpowiedzi:

1

Niektóre [lekko edytowane] informacje z komentarzy:

W rzeczywistości może to być przyczyną pustego okna Quickfix. Na ekranie :lopenprzesyłanym podczas uruchamiania Neomake działa dla tego bufora ze względu na autocmd dla BufEnter. Powinien być dodatkowo ograniczony tylko do plików JavaScript:

augroup neomake
  au!
  autocmd BufWritePost *.js Neomake
augroup END
D. Ben Knoble
źródło
0

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 .eslintrcplik lokalny ):

npm install -g eslint_d

Następnie dodaj następującą konfigurację dla neomake do swojego init.vim/ .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

Dla mnie to wszystko, czego potrzebowałem, po ponownym uruchomieniu neovim i otwarciu pliku javascript uruchomione :Neomakeostrzeżenia eslint.

icc97
źródło