2015-11-15 4 views
5

मैं टर्मिनल विम में YouCompleteMe स्थापित करने तक Syntastic का उपयोग कर रहा था। तो, बात यह है कि YouCompleteMe त्रुटियों के लिए सिंटेस्टिक चेक नहीं देता है, लेकिन मुझे दोनों प्लगइन की आवश्यकता है।विम के लिए संगत जेएस चेकर (सिंटेस्टिक | YouCompleteMe)?

YouCompleteMe में कुछ त्रुटि जांचकर्ता हैं, लेकिन मुझे इसे जावास्क्रिप्ट त्रुटियों को लिंट करने के लिए कोई तरीका नहीं मिला।

मैं इसे कैसे ठीक कर सकता हूं? YCM के लिए Syntastic

let g:syntastic_always_populate_loc_list = 0 
let g:syntastic_auto_loc_list = 2 
let g:syntastic_loc_list_height = 8 
let g:syntastic_check_on_open = 1 
let g:syntastic_check_on_wq = 1 
let g:syntastic_aggregate_errors = 1 
let g:syntastic_id_checkers = 1 
let g:syntastic_error_symbol = "✗" 
let g:syntastic_warning_symbol = "⚠" 

set statusline+=%#warningmsg# 
set statusline+=%{SyntasticStatuslineFlag()} 
set statusline+=%* 

let g:syntastic_javascript_checkers = ['jslint', 'jsonlint', 'gjslint'] 
let g:syntastic_html_tidy_exec = 'tidy5' 

.vimrc के लिए

.vimrc:

" YouCompleteMe and UltiSnips compatibility, with the helper of supertab 
let g:ycm_key_list_select_completion = ['<A-¶>', '<A-Space>', '<Down>'] 
let g:ycm_key_list_previous_completion = ['<A-§>', '<A-π>', '<Up>'] 

" You Complete Me Options 
let g:ycm_show_diagnostics_ui = 0 
let g:ycm_enable_diagnostic_highlighting = 0 
let g:ycm_enable_diagnostic_signs = 0 
let g:ycm_show_diagnostics_ui = 0 
let g:ycm_open_loclist_on_ycm_diags = 0 
let g:ycm_complete_in_comments = 0 
let g:ycm_complete_in_strings = 0 
let g:ycm_collect_identifiers_from_comments_and_strings = 0 
let g:ycm_collect_identifiers_from_tags_files = 1 

:SyntasticInfoउत्पादन

> Syntastic version: 3.7.0-31 (Vim 704, Darwin) 
> Info for filetype: javascript 
> Global mode: active 
> Filetype javascript is active 
> The current file will be checked automatically 
> Available checkers: - 
> Currently enabled checkers: - 

मुझे नहीं पता कि क्यों उपलब्ध और सक्षम चेकर्स चले गए हैं? वे वहां थे और वाईसीएम इंटेलेशन से पहले काम कर रहे थे!

+1

वाईसीएम सी, सी ++, उद्देश्य-सी, और उद्देश्य-सी ++ फ़ाइलों के लिए सिंटैस्टिक के चेकर्स को अक्षम करता है (और उस व्यवहार को बंद करने का एक विकल्प है)। बाकी सब कुछ के लिए वाईसीएम केवल कोड पूरा करता है, जांच नहीं करता है, और सिंटैस्टिक के साथ शांतिपूर्वक सह-अस्तित्व में हो सकता है। सिंटैस्टिक में जावास्क्रिप्ट लिंटर्स को सक्षम करने के लिए, क्या आपने मैन्युअल पढ़ने पर विचार किया है? भयानक परिप्रेक्ष्य, मुझे पता है। – lcd047

+0

@ lcd047 मैंने प्रलेखन पढ़ा लेकिन वास्तव में "बंद करें" विकल्प नहीं मिला। मैंने कुछ ** ** ** वाईसीएम विकल्पों को फिर से प्रदर्शित करने वाली त्रुटियों को अक्षम करने के लिए चर शामिल किए हैं, लेकिन सिंटेस्टिक अभी भी काम नहीं कर रहा है। मैंने सिंटेस्टिक दस्तावेज भी पढ़ा लेकिन सबकुछ ठीक है। मैंने नोट किया कि '': SyntasticInfo''it का उपयोग कर चेकर्स को पहचान नहीं रहा है। उपरोक्त आउटपुट देखें, मैं सवाल अपडेट करने जा रहा हूं। –

+0

यह सिंथेटिक डीबग करने के लिए एक अच्छी जगह नहीं है। मुद्दा ट्रैकर [इस तरह] है (https://github.com/scrooloose/syntastic/issues)। – lcd047

उत्तर

0

आप क्या कर सकते हैं प्लगइन और वैकल्पिक रूप से LanguageClient-neovim प्लगइन के साथ विम के बजाय Neovim का उपयोग करें।

बाद वाले काम के लिए, आपको npm install -g javascript-typescript-langserver भी चलाने की आवश्यकता होगी।

यह आपको जावास्क्रिप्ट भाषा सर्वर के माध्यम से एसिंक्रोनस लिनटिंग (एएलई) और एसिंक्रोनस समापन/लिफ्टिंग सुविधाएं प्राप्त करता है।

संबंधित मुद्दे