ऑटोकॉमप्लेक्शन सी / सी + + विम में

ऑटोकॉमप्लेक्शन प्रोग्रामर के लिए बहुत अच्छी सुविधा है जो विभिन्न प्रकार की प्रोग्रामिंग भाषाओं जैसे सी / सी + + भाषाओं पर काम करते हैं। विम संपादक विंडोज या लिनक्स के तहत यह सुविधा प्रदान करता है। विम में C / C + + का स्वत: पूर्णता उन शब्दों को खोजता है जो उस फ़ाइल से टाइप किए जाते हैं जिसने पहले इसके टैग को सहेजा है। उपयोगकर्ता, सिस्टम के हार्डवेयर घटक की मदद से - अर्थात कीबोर्ड, संग्रहीत टैग के माध्यम से देखने की प्रक्रिया को जम्पस्टार्ट करने के लिए एक कुंजी को कॉन्फ़िगर करेगा। हालांकि, किसी भी ऐसे शब्द के लिए आंखें खुली रखना समझदारी होगी, जिसका कोई मतलब नहीं है।

  • स्थापना
  • विन्यास
  • उपयोग
  • लिंक

यह ट्यूटोरियल लिनक्स पर विम को चलाने वाले लोगों के लिए लक्षित है। ऑटो-पूर्ण लिनक्स उपयोगकर्ताओं के लिए एक परिचित कार्य है, हालांकि यह कभी-कभी ऐसे शब्दों का सुझाव दे सकता है जो संदर्भ में समझ में नहीं आते हैं। प्रोग्रामिंग करते समय यह निराशाजनक हो सकता है, जैसा कि ऑटो-पूर्ण सुझाव दे सकता है, उदाहरण के लिए, एक प्रकार जब कोड में उस बिंदु पर एक विधि की उम्मीद की जाती है।

 वर्ग प्लॉप () {संरक्षित: int plopons; public: plop () {} void plopez () {}}; int main () {plop p; पी। // <- Ctrl P प्रस्तावक क्रमिकता: plopez, plop ... alors que c'est forcément plopé return 0; } 

एक प्लगइन, जो ctags Vim पर आधारित है, आपको एक अधिक बुद्धिमान ऑटो-पूर्ण बनाने में सक्षम बनाता है जो उस संदर्भ को ध्यान में रख सकता है जिसमें एक शब्द का उपयोग किया जाता है।

स्थापना

हम ctags स्थापित करके शुरू करते हैं। उदाहरण के लिए, डेबियन या डेबियन आधारित वितरण (ubuntu, xandros आदि) के तहत:

 sudo एप्टीट्यूड अपडेट sudo एप्टीट्यूड सेफ-अपग्रेड sudo एप्टीट्यूड exuberant-ctags स्थापित करते हैं 

यह ऑटो-पूर्ति के लिए विम प्लगइन को भी पुन: प्राप्त करता है:

//www.vim.org/scripts/script.php?script_id=1520

हम ~ / में आत्म-पूरा करने के बारे में सब कुछ करेंगे। विम:

 mkdir -p ~ / .vim / tags mv omnicpp * zip ~ / .vim cd ~ / .vim अनज़िप omnicpp * zip cd - 

Ctags हेडर क्यूटी, ओपनजीएल, एसडीएल की समस्या पर विचार करने में सक्षम है। हालांकि, एसटीएल के लिए, आपको यहां "सरल" हेडर प्राप्त करना होगा:

//www.vim.org/scripts/script.php?script_id=2358

यह संग्रह को अनपैक करता है और STL से टैग बनाता है:

 tar xjvf cpp_src.tar.bz2 ctags -R --c ++ - type = + p --fields = + iaS --extra = + q --language-force = C ++ cpp_src और&vv टैग ~ / .vim / टैग / stl। 

अब यह स्थापित पुस्तकालयों के लिए टैग बनाता है (यदि पुस्तकालयों को कहीं और स्थापित किया गया है तो अनुकूलित किया जा सकता है)। उदाहरण के लिए, पुस्तकालयों में OpenGL, SDL और qt, बस निम्नलिखित तीन कमांड टाइप करें:

सी

 टैग -R --c ++ - type = + p --fields = + iaS --extra = + q --language-force = C ++ / usr / शामिल / GL / && mv टैग ~ / .vim / टैग / glttags -। R --c ++ - types = + p --fields = + iaS --extra = + q --language-force = C ++ / usr / शामिल / SDL / && mv टैग ~ / .vim / टैग / sdt ctags -R -। -c ++ - type = + p --fields = + iaS --extra = + q --language-force = C ++ / usr / शामिल / qt4 / && mv टैग ~ / .vim / टैग / qt। 

विन्यास

अब हमें प्लगइन फ़ाइलों और विभिन्न टैग्स को लोड करने के लिए विम को बताना होगा। ऐसा करने के लिए, बस फ़ाइल के अंत में जोड़ें ~ /। निम्नलिखित पंक्तियों को देखें:

 "prérequis टैग्स पर nocp filetype plugin सेट करें" टैग कॉन्फ़िगर करें - यहां अतिरिक्त टैग जोड़ें या उपयोग न किए गए टैग सेट करें + = ~ / .vim / टैग / stl सेट टैग + = ~ / .vim / टैग / gl सेट टैग + = ~ /। .vim / tags / sdl सेट टैग + = ~ / .vim / tags / qt4 "CTRL + F12" मैप के साथ अपनी खुद की परियोजना के टैग बनाएँ:! ctags -R --c ++ - टाइप = + p --f1 = = iaS -! -एक्सट्रा = + क्यू। नॉरमेप:! ctags -R --c ++ - type = + p --fields = + iaS --extra = + q। inoremap:! ctags -R --c ++ - type = + p --fields = + iaS --extra = q। "OmniCpp_NamespaceSearch = 1 चलो OmniCpp_GlobalScopeSearch = 1 Let OmniCpp_ShowAccess = 1 को OmniCpp_MayCompDot_ =" OmniCpp_MayCompleteArrow = 1 "OmniCpp_MayCompleteArrow = 1" OmniCpp_MayCompleteArrow = 1 "OmniCpp_MayCompleteArrow = 1 लेट होने दें। CursorMovedI, InsertLeave * यदि pumv अदृश्य () == 0 | चुप! pclose | एंडिफ़ सेट कम्पलीट = मेन्यू, मेनू, सबसे लंबा, पूर्वावलोकन 

यदि टैग केवल कुछ फ़ाइलों के लिए उत्पन्न किए गए थे, तो लाइन की शुरुआत में जोड़कर दूसरे पर टिप्पणी करें। उदाहरण के लिए अगर हमने ~ /.vim/tags/gl और ~ / .vim / tags / sdl उत्पन्न नहीं किया है।

 सेट टैग + = ~ / .vim / tags / stl "सेट टैग + = ~ / .vim / टैग / ग्ल" सेट टैग + = ~ / .vim / टैग / एसडीएल सेट टैग + = ~ / .vim / टैग / qt4। 

हमें बस फ़ाइल को सहेजना है और (फिर से) शुरू करना है ताकि वे बदलावों को प्रतिबिंबित करें ~ /। Vimrc।

उपयोग

वह सब कुछ जो पहले टैग किया गया है (यानी इस ट्यूटोरियल टैग एसटीएल, क्यूटी, एसडीएल और ओपनजीएल में) पहले से ही ऑटो पूरा होने में उपलब्ध है। बस ctrl p या n दबाएं। सूची दिखाई देने के बाद, आप तीर का उपयोग अच्छे प्रस्ताव को उजागर करने और एन्टर प्रेस करने के लिए कर सकते हैं।

हालाँकि, यह पूरी तरह से समाप्त नहीं हुआ है। इसे विकसित किए जा रहे प्रोजेक्ट के लिए प्रतीकों (चर, कार्यों, प्रकार ...) के टैग को पुन: प्राप्त करना चाहिए। यह एक बार फिर एक टैग फ़ाइल उत्पन्न करेगा। और निश्चित रूप से, यह आपके द्वारा प्रोजेक्ट के प्रतीक को जोड़ने, हटाने या बदलने के लिए हर बार फ़ाइल को ताज़ा करेगा ताकि यह चालू हो।

जैसा कि काफी सामान्य है, यह अनुशंसा की जाती है कि आप कीबोर्ड पर एक कुंजी को ctags की प्रक्रिया को ट्रिगर करने के लिए मैप करें। उदाहरण फ़ाइल में ~ / .Vimrc जो मैंने दिया, यह F12 दबाकर सुनिश्चित किया गया है।

लिंक

//vim.wikia.com/wiki/C++_code_completion

//www.vim.org/scripts/script.php?script_id=1520

//www.vim.org/scripts/script.php?script_id=2358

पिछला लेख अगला लेख

शीर्ष युक्तियाँ