Neomake treo khi sử dụng eslint


11

Tôi đã theo hai hướng dẫn sau để thử và thiết lập eslintNeomake:

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 Neomakehang 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 nvimnhư 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:

Cửa sổ mở rồi đóng

My vim/ nvimkiến thức có phần cơ bản vì vậy hãy rõ ràng trong câu trả lời.


cố gắng thay đổi autocmd! BufWritePost,BufEnter * Neomakethành augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END Buf Entry không có nhiều ý nghĩa
Yonsy Solis

Trên thực tế đây có thể là lý do cho cửa sổ sửa chữa nhanh trống rỗng. Trên màn hình của bạn khi bạn chạy :lopenNeomake 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
grodzik

Câu trả lời:


1

Một số thông tin [được chỉnh sửa nhẹ] từ các bình luận:

Trên thực tế đây có thể là lý do cho cửa sổ Quickfix trống. Trên màn hình của bạn khi bạn chạy :lopen, Neomake chạy cho bộ đệm đó do autocmd cho Buf Entry. Nó chỉ được giới hạn bổ sung cho các tệp JavaScript:

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

0

Điều này không trả lời chính xác câu hỏi của bạn, nhưng tôi thấy rằng neomake hoạt động tốt hơn với eslint_d . Nó có tác dụng phụ tốt đẹp là nó cũng nên làm nhanh hơn.

Trước tiên, bạn phải cài đặt eslint_d trên toàn cầu (nhưng dường như nó vẫn nhận bất kỳ .eslintrctệp cục bộ nào ):

npm install -g eslint_d

Sau đó thêm cấu hình sau cho neomake vào init.vim/ .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

Đối với tôi đó là tất cả những gì tôi cần, sau khi khởi động lại neovim và mở tệp javascript đang chạy :Neomakeđã cho tôi những cảnh báo eslint.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.