ฉันติดตามบทเรียนทั้งสองต่อไปนี้เพื่อลองและตั้งค่าeslintและNeomake:
ดังนั้นฉันมีน้อยที่สุดดังต่อไปนี้ 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
ปัญหาคือเมื่อฉันบันทึกNeomakeแฮงค์ด้วยข้อความต่อไปนี้:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
หากฉันรันคำสั่งนั้นด้วยตนเองนอกnvimชอบ:
eslint -f compact /home/otis/Developer/test/index.js
ฉันได้รับผลลัพธ์ต่อไปนี้:
/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
ซึ่งเป็นสิ่งที่ดีก็หมายความว่าeslintเป็นคนที่ทำงาน Neomakeแต่ฉันได้รับอะไรกลับมาจาก
หากฉันเปิด:lopenหน้าต่างจะปรากฏขึ้นจากนั้นปิดทันทีเช่นด้านล่าง:
ความรู้ของฉันvim/ nvimค่อนข้างพื้นฐานดังนั้นโปรดตอบอย่างชัดเจน
:lopenNeomake ทำงานสำหรับบัฟเฟอร์นั้นเนื่องจาก autocmd สำหรับ BufEnter @Yonsy ข้อมูลโค้ดเป็นสิ่งที่ดี แต่ควร จำกัด เฉพาะไฟล์ JavaScript เท่านั้น:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END

autocmd! BufWritePost,BufEnter * Neomakeให้เป็นaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup ENDเรื่องไม่สมเหตุสมผล