2009-11-17 14 views
81

मैं एक सुंदर नया वीम उपयोगकर्ता हूं और मुझे पता चला है कि इसकी सीखने की अवस्था काफी खड़ी है (कम से कम मेरे लिए)। मैंने जावास्क्रिप्टलिंट त्रुटि जांच के लिए बस this vim script इंस्टॉल किया है, जो एक बफर सहेजने के बाद विम की क्विकफ़िक्स विंडो में त्रुटियों को दिखाता है।आप विम की क्विकफ़िक्स सुविधा का उपयोग कैसे करते हैं?

हालांकि, मुझे नहीं पता कि आगे क्या करना है .. मैं सभी त्रुटियों के माध्यम से कैसे 'स्क्रॉल' कर सकता हूं? मैं quickfix 'विंडो' को कैसे बंद करूं? मेरे कोड में परिवर्तन करने के बाद त्रुटियों की जांच करने के लिए मैं इसे कैसे प्राप्त करूं?

मैंने विम क्विकफ़िक्स दस्तावेज़ों को देखा है लेकिन कमांड की मात्रा भारी है और मुझे लगता है कि मैं जो चाहता हूं उसे ढूंढ नहीं सकता। किसी भी सहायता की सराहना की जाएगी।

एक साइड प्रश्न: क्या जावास्क्रिप्टलिंट को .html फ़ाइल में रहने वाले कोड के लिए जेएस त्रुटियों के लिए जांच करने का कोई तरीका है?

धन्यवाद!

उत्तर

109

वहाँ के रूप में आप ने कहा है QuickFix के लिए commands का एक बहुत हैं, लेकिन मुझे लगता है मैं उनमें से केवल एक छोटे सबसेट का उपयोग खोजने के लिए करते हैं:

:copen " Open the quickfix window 
:ccl " Close it 
:cw " Open it if there are "errors", close it otherwise (some people prefer this) 
:cn " Go to the next error in the window 
:cnf " Go to the first error in the next file 

मैं :make और :vimgrep के साथ इस का उपयोग करते हैं, तो मैं जावास्क्रिप्ट लिंट चेकर पर टिप्पणी नहीं कर सकता, लेकिन यह आपको शुरू करने के लिए कुछ देना चाहिए।

जावास्क्रिप्टलिंट के सामान्य उपयोग के संबंध में, मैं जावास्क्रिप्ट प्रोग्रामर नहीं हूं, लेकिन ऐसा लगता है कि स्क्रिप्ट "जावास्क्रिप्टलिंट" नामक फ़ंक्शन का खुलासा करती है, इसलिए यदि आप इसे मैन्युअल रूप से कॉल करना चाहते हैं, तो आप :call JavascriptLint() का उपयोग कर सकते हैं। हालांकि, यह फ़ाइल की डिस्क कॉपी पर काम करता है, इसलिए इसे पहले सहेजा जाना होगा। यदि (और केवल अगर) कमांड लाइन jsl एचटीएमएल फाइलों पर काम करता है, तो आप आंतरिक जावास्क्रिप्ट को देखने के लिए एचटीएमएल फाइल पर :call JavascriptLint() का उपयोग करने में सक्षम होना चाहिए। आप यह भी कर सकते हैं:

autocmd BufWritePost,FileWritePost *.html call JavascriptLint() 

इसे स्वचालित करने के लिए। यदि jsl एचटीएमएल फाइलों का समर्थन नहीं करता है, तो (एप्लिकेशन को पैच करने या लेखक को इसे बदलने के लिए कहने से कम), यह संभवतः एक खो गया कारण है ...

+0

धन्यवाद, वे आदेश एक अच्छी शुरुआत हैं, मुझे बस थोड़ा सा खेलना होगा और यह कैसे काम करता है इसका उपयोग करें। यदि मैं उपयोग करता हूं: qn विंडो में किसी त्रुटि पर जाने के लिए, क्या मैं qf विंडो से बाहर निकले बिना अपने कोड के साथ विंडो पर जा सकता हूं? क्या यह उस रेखा पर जा सकता है जिसमें त्रुटि है? और उपयोग करने का आपका सुझाव: कॉल काम करता है, हालांकि यह

5

क्विकफ़िक्स विंडो अधिकतर किसी अन्य विम विंडो की तरह संचालित होती है: j एक रेखा के नीचे, एक लाइन के ऊपर, सीएन अगली त्रुटि/चेतावनी, आदि पर कूदने के लिए

प्रयोग!

+1

प्रयोग के लिए +1, यह काफी है कि मैंने सब कुछ कैसे सीखा। – hora

14

आप इस मामले में, quickfix विंडो में दूसरी त्रुटि पर जाने के लिए :cc 2 (या कोई अन्य नंबर) का उपयोग भी कर सकते हैं। :cn, :cc 4, आदि के साथ नेविगेट करने से कर्सर को प्रश्न में लाइन पर रखा जाएगा।

8

जावास्क्रिप्ट वाक्य रचना-चेकिंग एकीकृत Syntastic Vim plugin, जो विम के स्थान-सूची खिड़की (जो QuickFix के समानांतर है) का उपयोग कर रहा है उपयोग कर रहा है का सबसे अच्छा अभ्यास तरीका है।

मैं this question और this question इसे कैसे करना है, साथ ही यह भी कि कैसे का उपयोग करने के लिए विम स्रोत-कोड ब्राउज़िंग/टैग सूची प्राप्त करने के लिए समझाने के लिए जवाब लिखा है समुदाय द्वारा संचालित jshint.com (जो रास्ता JSLint की तुलना में बेहतर IMO है) और मोज़िला के DoctorJS (पूर्व में jsctags)।

39

क्विकफ़िक्स सूची (या उस स्थिति के लिए स्थान सूची) पर नेविगेट करने का सबसे आसान तरीका the unimpaired plugin है।

एक बार क्विकफ़िक्स विंडो आबादी के बाद, [q और ]q त्वरित फ़िक्स सूची में आगे और पीछे (क्रमशः) जाएं। [Q और ]Q शुरुआत और अंत में जाएं (जो विशेष रूप से आसान है यदि आपके पास सूची में केवल एक आइटम है; इससे vim शिकायत [q और ]q) के बारे में शिकायत करती है। तो कार्यप्रवाह है:

  1. भागो जो कुछ भी आदेश [q और ]q

साथ QuickFix सूची

  • प्रकार [Q बाद आइटम के माध्यम से पहले आइटम पर जाने के लिए
  • स्क्रॉल (यदि हो तो) भरता है यदि आप सिंटेस्टिक का उपयोग कर रहे हैं, तो आपको Quickfix सूची के बजाय स्थान सूची मिल जाएगी। कोई बात नहीं; बस [L, ]L, [l, और ]l का उपयोग उसी तरह करें। ;, [e और ]e "बुलबुला" ऊपर और नीचे से ऊपर और नीचे लाइनों, [<Space> और ]<Space> डालने रिक्त लाइनों आदि मैं कोई भी इसे यहाँ पहले उल्लेख किया हैरान था -

    unimpaired भी अन्य आसान मैपिंग का भार है शायद यह कारण है कि यह जनवरी 2010 तक अस्तित्व में नहीं था, हालांकि 200 9 में सवाल पूछा गया था।

  • 4

    शायद यह विकल्प मौजूद नहीं था जब यह प्रश्न लिखा गया था (या शायद मैं खुद को शर्मिंदा कर रहा हूं क्योंकि मेरे .vimrc में कुछ है यह ऐसा होता है) लेकिन जब मुझे Quickfix List मिलता है, तो मैं इसे j और k के साथ नेविगेट करता हूं, फिर फ़ाइल में उस स्थान पर जाने के लिए <CR> (यानी एंटर कुंजी) दबाएं।

    फिर, वापस Quickfix List को पाने के लिए मैं Ctrl + Wj "एक खिड़की नीचे ले जाने के लिए" टाइप करें और मैं वापस कर रहा हूँ।

    अंत में, जब मैं कर रहा हूं, तो मैं बस :q टाइप करता हूं, जैसे कि मैं किसी भी सामान्य विंडो को बंद करना चाहता हूं।

    +0

    यही वह है जो मैं करना चाहता हूं, लेकिन मुझे "परिवर्तन नहीं कर सकता," संशोधित 'बंद है "। –

    12

    अपने .vimrc फ़ाइल में निम्न दो पंक्तियों रखो:

    map <C-j> :cn<CR> 
    map <C-k> :cp<CR> 
    

    अब आप ctrl-j और Ctrl-K, जो मानक नीचे की नकल करता है और गति ऊपर j और कश्मीर आदेशों का उपयोग कर त्रुटियों के माध्यम से नेविगेट कर सकते हैं ।

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