एस्लिंट का उपयोग करते समय नोमेक लटका हुआ


11

मैं कोशिश करते हैं और स्थापित करने के लिए निम्न दो ट्यूटोरियल निम्नलिखित किया गया है 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ज्ञान कुछ हद तक बुनियादी है इसलिए कृपया प्रतिक्रियाओं में स्पष्ट रहें।


अपने को बदलने की कोशिश autocmd! BufWritePost,BufEnter * Neomakeकरने के लिए augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END कई अर्थ नहीं है BufEnter
Yonsy सोलिस

वास्तव में यह खाली क्विक फिक्स विंडो का कारण हो सकता है। जब आप :lopenBufEnter के लिए स्वतः पूर्णता के कारण उस बफ़र के लिए चलता है, तो आपके स्क्रीन कास्ट पर Neomake चलाता है। @Yonsy स्निपेट अच्छा है, लेकिन अतिरिक्त रूप से केवल जावास्क्रिप्ट फ़ाइलों तक सीमित होना चाहिए:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
grodzik

जवाबों:


1

कुछ [हल्के से संपादित] टिप्पणियों से जानकारी:

वास्तव में यह खाली क्विकफिक्स विंडो का कारण हो सकता है। जब आप चलाते हैं :lopen, तो आपकी स्क्रीन कास्ट पर , Neufake BufEnter के लिए ऑटोकैम के कारण उस बफर के लिए चलता है। यह केवल जावास्क्रिप्ट फ़ाइलों तक सीमित होना चाहिए:

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

0

यह ठीक आपके प्रश्न का उत्तर नहीं है, लेकिन मैंने पाया कि neomake साथ बेहतर कार्य करता eslint_d । इसका अच्छा साइड इफेक्ट यह है कि इसे लाइनिंग को और भी तेज करना चाहिए।

आपको पहले विश्व स्तर पर eslint_d स्थापित करना होगा (लेकिन यह अभी भी किसी भी स्थानीय .eslintrcफ़ाइल को लेने के लिए लगता है ):

npm install -g eslint_d

फिर अपने init.vim/ के लिए neomake के लिए निम्न कॉन्फ़िगरेशन जोड़ें .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

मेरे लिए वह सब जो मुझे चाहिए था, नवविराम को फिर से शुरू करने और एक जावास्क्रिप्ट फ़ाइल को चलाने के बाद :Neomakeमुझे एस्लिंट चेतावनी दी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.