Saya telah mengikuti dua tutorial berikut untuk mencoba dan mengatur eslint
dan Neomake
:
Jadi saya punya minimal berikut 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
Masalahnya adalah ketika saya menyimpan Neomake
hang dengan pesan berikut:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
Jika saya menjalankan perintah itu secara manual di luar nvim
seperti:
eslint -f compact /home/otis/Developer/test/index.js
Saya menerima output berikut:
/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
Yang bagus itu artinya eslint
bekerja tetapi saya tidak mendapatkan apa-apa dari Neomake
.
Jika saya menjalankan :lopen
jendela muncul dan kemudian langsung menutup seperti di bawah ini:
Saya vim
/ nvim
pengetahuan agak dasar jadi harap eksplisit dalam tanggapan.
neovim
quickfix
plugin-neomake
Otis Wright
sumber
sumber
autocmd! BufWritePost,BufEnter * Neomake
keaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END
BufEnter Anda tidak masuk akal:lopen
Neomake menjalankan untuk buffer itu karena autocmd untuk BufEnter. Cuplikan @Yonsy baik, tetapi harus dibatasi hanya untuk file JavaScript saja:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
Jawaban:
Beberapa info [yang diedit] dari komentar:
sumber
Ini tidak persis menjawab pertanyaan Anda, tetapi saya menemukan bahwa neomake berfungsi lebih baik dengan eslint_d . Ini memiliki efek samping yang bagus yang harus dilakukan linting lebih cepat juga.
Pertama-tama Anda harus menginstal eslint_d secara global (tetapi tampaknya masih mengambil
.eslintrc
file lokal apa pun ):Kemudian tambahkan konfigurasi berikut untuk neomake ke
init.vim
/ Anda.vimrc
:Bagi saya itu yang saya butuhkan, setelah memulai kembali neovim dan membuka file javascript berjalan
:Neomake
memberi saya peringatan eslint.sumber