eslint를 사용할 때 Neomake가 중단됨


11

나는 시도하고 설정하려면 다음 두 가지 자습서를 따라 한 eslintNeomake:

그래서 나는 다음과 같은 최소한을 가지고 있습니다. 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지식은 다소 기본적이므로 응답에 명시하십시오.


당신의 변경하려고 autocmd! BufWritePost,BufEnter * Neomakeaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END 많은 의미가없는 BufEnter
Yonsy 솔리스

실제로 이것은 빠른 수정 사항 창이 비어있는 이유 일 수 있습니다. :lopenBufEnter에 대한 autocmd로 인해 해당 버퍼에 대해 Neomake가 실행될 때 화면 캐스트에서 . @Yonsy 조각은 훌륭하지만 추가로 자바 스크립트로 제한해야 파일 만 :augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
grodzik

답변:


1

댓글에서 일부 [약간 편집 된] 정보 :

실제로 이것은 비어있는 Quickfix 창이있는 이유 일 수 있습니다. 을 실행할 때 화면 캐스트 :lopen에서 Neomake는 BufEnter에 대한 autocmd로 인해 해당 버퍼에 대해 실행됩니다. JavaScript 파일로만 제한해야합니다.

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

0

이것은 귀하의 질문에 정확하게 대답하지는 않지만 neomake가 eslint_d와 더 잘 작동한다는 것을 알았 습니다 . 그것은 보풀을 더 빨리해야한다는 좋은 부작용이 있습니다.

먼저 eslint_d를 전체적으로 설치해야하지만 여전히 로컬 .eslintrc파일 을 선택하는 것 같습니다 .

npm install -g eslint_d

그런 다음 neomake에 대한 다음 구성을 init.vim/에 추가하십시오 .vimrc.

let g:neomake_javascript_enabled_makers = ['eslint_d']

나에게 필요한 것은 neovim을 다시 시작하고 javascript 파일을 실행 한 후에 :Neomakeeslint 경고를 주었다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.