2011-03-11 16 views
5

हाइलाइट करना क्या कोई विम स्क्रिप्ट है जो समय-समय पर उस कोड को संकलित/व्याख्या करने का प्रयास करती है जिस पर मैं काम कर रहा हूं, और सिंटैक्स त्रुटियों को हाइलाइट करता हूं? मैं यह इंगित करना चाहता हूं कि इन पंक्तियों के बीच कुछ गड़बड़ है:विम सिंटैक्स/संकलन-समय त्रुटि

int a = 42 
cout << a << endl; 

ऐसी चीज मुझे समय का भार बचाएगी। मैं मुख्य रूप से एक पर्ल-सिंटैक्स चेकर खोज रहा हूं, लेकिन मुझे अन्य भाषाओं के लिए समान प्लगइन में रुचि भी होगी।

अद्यतन: एक अन्य त्रुटि मैं बाहर बात करने के लिए यह करना चाहते हैं:

int a == 42; 
cout << a << endl; 
+0

हो सकता है कि आप केवल उस चीज़ पर जाएं जहां आप चाहते हैं ': मेक' करें, और इसके लिए एक कुंजी मैप करें, ताकि "समय-समय पर" आपके पास "जब भी मैं दबाता हूं" या कुछ ऐसा हो। पूर्वावलोकन विंडो में त्रुटियां बिल्कुल हाइलाइटिंग जैसी ही नहीं हैं, लेकिन यह अंतर्निहित कार्यक्षमता है। (पर्ल के लिए, आपको केवल 'makeprg' को' perl -c' 'सेट करने की आवश्यकता होनी चाहिए।) – Cascabel

+0

मैंने कुछ समय के लिए ActiveState's Komodo का उपयोग किया था। इसके पॉइंटिंग-आउट-सिंटैक्स-त्रुटियों-संपादन-संपादन के साथ बेहद प्रभावित। बात यह है कि, इतनी बड़ी उत्पादकता वृद्धि नहीं थी। डीबगर साफ था (विशेष रूप से जब एक सर्वर पर एक सीजीआई स्क्रिप्ट के माध्यम से दूर, दूर)। – bobbogo

+0

मैं अपने आप को द्वारा एक समाधान को हैक कर लिया था :) आप उल्लेख कर सकते हैं [errormarker साथ AsyncCommand काम जाओ] [1] [1]: http://stackoverflow.com/q/7963021/108565 – yoco

उत्तर

6

आप eclim का उपयोग कर सकते हैं: एक बार आपका ग्रहण सर्वर सेट अप और चलने के बाद, आप अपनी फ़ाइल पर कोड सत्यापन चलाने के लिए Vim कमांड :Validate का उपयोग कर सकते हैं।

असल में, यह ग्रहण में उपलब्ध सत्यापन का उपयोग करता है और इसे स्थान सूची में Vim/gVIm में प्रदर्शित करता है। (:lopen का उपयोग करें)

अपने उदाहरण के लिए, स्थान सूची में शामिल हैं:

test.cpp|1 col 11 error| Syntax error 
test.cpp|2 col 1 error| Syntax error 

डिफ़ॉल्ट रूप से मान्यता हर बार जब आप को बचाने चलाया जाता है (col 11 लापता ; के स्थान से मेल खाती है) एक बफर

त्रुटि विवरण वास्तव में क्रिस्टल स्पष्ट नहीं है लेकिन एक बार जब आप त्रुटि के साथ रेखा पाते हैं, तो आप आमतौर पर त्रुटि को आसानी से खोजते हैं।

1

ऑटो खिसकने यह करना चाहिए। जब आप एक अतिरिक्त इंडेंटेशन स्तर के साथ अपनी नई लाइन शुरू करते हैं तो इसका अर्थ यह है कि या तो आपने एक नया ब्लॉक दर्ज किया है या आपने कोई कथन पूरा नहीं किया है।

+0

कि मेरे उदाहरण को हल करेंगे, लेकिन सभी प्रकार की त्रुटियां हैं जो एक कंपाइलर पाता है, उदाहरण के लिए जिसे मैंने अभी जवाब दिया है। – Tim