Neomake hängt bei Verwendung von Eslint


11

Ich habe die folgenden zwei Tutorials befolgt, um zu versuchen, einzurichten eslintund Neomake:

Ich habe also folgendes 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

Das Problem ist, wenn ich NeomakeHänge mit folgender Meldung speichere :

Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js

Wenn ich diesen Befehl manuell außerhalb von nvimwie folgt ausführe :

eslint -f compact /home/otis/Developer/test/index.js

Ich erhalte folgende Ausgabe:

/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

Was gut ist, bedeutet, dass eslintes funktioniert, aber ich bekomme nichts zurück Neomake.

Wenn ich :lopendas Fenster starte, erscheint es und schließt sich sofort wie folgt:

Fenster öffnen und schließen

Mein vim/ nvimWissen ist etwas grundlegend, also bitte in den Antworten explizit angeben.


Versuchen Sie, Ihre autocmd! BufWritePost,BufEnter * Neomakezu augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END BufEnter zu ändern , haben nicht viel Sinn
Yonsy Solis

Tatsächlich könnte dies der Grund für ein leeres Schnellkorrekturfenster sein. Auf Ihrem Bildschirm wird beim Ausführen von :lopenNeomake aufgrund von Autocmd für BufEnter für diesen Puffer ausgeführt. @ Yonsy Snippet ist gut, sollte aber zusätzlich nur auf JavaScript-Dateien beschränkt sein:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
grodzik

Antworten:


1

Einige [leicht bearbeitete] Informationen aus den Kommentaren:

Tatsächlich könnte dies der Grund für ein leeres Quickfix-Fenster sein. Auf Ihrem Bildschirm :lopenwird Neomake beim Ausführen für diesen Puffer ausgeführt, da für BufEnter ein automatischer Befehl ausgeführt wird. Es sollte zusätzlich nur auf JavaScript-Dateien beschränkt sein:

augroup neomake
  au!
  autocmd BufWritePost *.js Neomake
augroup END

0

Dies beantwortet Ihre Frage nicht genau, aber ich habe festgestellt, dass neomake mit eslint_d besser funktioniert . Es hat den schönen Nebeneffekt, dass es das Flusen auch schneller machen sollte.

Sie müssen zuerst eslint_d global installieren (es scheint jedoch immer noch eine lokale .eslintrcDatei aufzunehmen):

npm install -g eslint_d

Fügen Sie dann die folgende Konfiguration für neomake zu Ihrem init.vim/ hinzu .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

Für mich war das alles, was ich brauchte, nachdem :Neomakeich neovim neu gestartet und eine laufende Javascript-Datei geöffnet hatte , gab es mirlint-Warnungen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.