Tôi đã theo hai hướng dẫn sau để thử và thiết lập eslint
và Neomake
:
Vì vậy, tôi có tối thiểu sau đây 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
Vấn đề là khi tôi lưu Neomake
hang bị treo với thông báo sau:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
Nếu tôi chạy lệnh đó bằng tay bên ngoài nvim
như vậy:
eslint -f compact /home/otis/Developer/test/index.js
Tôi nhận được đầu ra sau:
/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
Điều đó tốt có nghĩa là nó eslint
đang hoạt động nhưng tôi không nhận lại được gì Neomake
.
Nếu tôi chạy :lopen
, cửa sổ bật lên và sau đó đóng lại ngay lập tức như bên dưới:
My vim
/ nvim
kiến thức có phần cơ bản vì vậy hãy rõ ràng trong câu trả lời.
:lopen
Neomake chạy cho bộ đệm đó do autocmd cho Buf Entry. Đoạn mã @Yonsy là tốt, nhưng chỉ nên giới hạn ở các tệp JavaScript:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
autocmd! BufWritePost,BufEnter * Neomake
thànhaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END
Buf Entry không có nhiều ý nghĩa