मानक जीएनयू etags
exuberant ctags -R
द्वारा किए गए निर्देशिकाओं की एक पुनरावर्ती चलन का समर्थन नहीं करता है। अगर मेरे पास केवल जीएनयू ईटैग तक पहुंच है, तो मैं सभी सी ++ फ़ाइलों *.cpp
और *.h
फ़ाइलों के लिए टैग निर्देशिका बनाने के लिए ईटैग प्राप्त करने के लिए बैश शैल जादू का उपयोग कैसे कर सकता हूं और मौजूदा निर्देशिका में *.h
फ़ाइलों को एक टैग बनाने के लिए वर्तमान में नीचे की सभी निर्देशिकाएं वर्तमान निर्देशिका में तालिका जिसमें TAGS तालिका प्रविष्टियों को हल करने के लिए emacs
के लिए उचित पथ नाम है।जीएनयू ईटैग का उपयोग कर एक रिकर्सिव ईटैग बनाने के लिए शैल जादू का उपयोग कैसे करें?
उत्तर
Emacs Wiki आम समस्याओं या सर्वोत्तम प्रथाओं के उत्तर के लिए अक्सर एक अच्छा स्रोत है। अपने विशिष्ट समस्या के लिए वहाँ दोनों Windows और Unixen के लिए एक समाधान है:
http://www.emacswiki.org/emacs/RecursiveTags#toc2
मूल रूप से आप एक आदेश चला करता है, तो आप इस तरह के रूप में विभिन्न फ़ाइल अंत, उपयोग करने वाले सभी .cpp
और सभी .h
फ़ाइलें (परिवर्तन फ़ाइल चयनकर्ताओं को खोजने के लिए उदाहरण के लिए , .C
) और परिणाम ईटैग में पाइप। चूंकि विंडोज़ में xargs प्रतीत नहीं होता है, इसलिए आपको ईटैग के एक और हालिया संस्करण की आवश्यकता है जो stdin से पढ़ सकते हैं (लाइन के अंत में डैश को नोट करें जो stdin का प्रतीक है)। बेशक, यदि आप ईटैग के हाल के संस्करण का उपयोग करते हैं, तो आप वहां xargs के बजाय डैश पैरामीटर का भी उपयोग कर सकते हैं।
विंडोज:
cd c:\source-root
dir /b /s *.cpp *.h *.hpp | etags --your_options -
यूनिक्स:
cd /path/to/source-root
find . -name "*.cpp" -print -or -name "*.h" -print | xargs etags --append
यह आदेश etags ग के लिए के साथ डिफ़ॉल्ट नाम "टैग" फाइल बनाता है, सीपीपी, सीपीपी, .hpp, .Hpp .h फ़ाइलें रिकर्सिवली
find . -regex ".*\.[cChH]\(pp\)?" -print | etags -
यह कैसे है आप "केवल जीएनयू etags तक पहुंच है"? कई प्लेटफार्मों के लिए उत्साही सीटीएजी स्वतंत्र रूप से उपलब्ध है। क्या आप इसे स्थापित नहीं कर सकते? –
नियोक्ता अनधिकृत सॉफ़्टवेयर स्थापित नहीं करना चाहता, बल्कि अगर मैं 'etags' प्रदान करके चारों ओर काम कर सकता हूं तो उससे लड़ना नहीं चाहूंगा। – WilliamKF