2012-05-24 36 views
5

मानक जीएनयू etags exuberant ctags -R द्वारा किए गए निर्देशिकाओं की एक पुनरावर्ती चलन का समर्थन नहीं करता है। अगर मेरे पास केवल जीएनयू ईटैग तक पहुंच है, तो मैं सभी सी ++ फ़ाइलों *.cpp और *.h फ़ाइलों के लिए टैग निर्देशिका बनाने के लिए ईटैग प्राप्त करने के लिए बैश शैल जादू का उपयोग कैसे कर सकता हूं और मौजूदा निर्देशिका में *.h फ़ाइलों को एक टैग बनाने के लिए वर्तमान में नीचे की सभी निर्देशिकाएं वर्तमान निर्देशिका में तालिका जिसमें TAGS तालिका प्रविष्टियों को हल करने के लिए emacs के लिए उचित पथ नाम है।जीएनयू ईटैग का उपयोग कर एक रिकर्सिव ईटैग बनाने के लिए शैल जादू का उपयोग कैसे करें?

+0

यह कैसे है आप "केवल जीएनयू etags तक पहुंच है"? कई प्लेटफार्मों के लिए उत्साही सीटीएजी स्वतंत्र रूप से उपलब्ध है। क्या आप इसे स्थापित नहीं कर सकते? –

+0

नियोक्ता अनधिकृत सॉफ़्टवेयर स्थापित नहीं करना चाहता, बल्कि अगर मैं 'etags' प्रदान करके चारों ओर काम कर सकता हूं तो उससे लड़ना नहीं चाहूंगा। – WilliamKF

उत्तर

12

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 
0

ढूंढें का उपयोग करें। अगर आपको जरूरत है तो आदमी को ढूंढें।

+1

और मैन xargs भी, मैं शर्त लगाता हूं। । । । । या बस उत्साही स्थापित करें और इसके etags का उपयोग करें ... – jthill

+0

'-exec आदेश +' होने पर xargs का उपयोग क्यों करें? – jordanm

1

यह आदेश etags ग के लिए के साथ डिफ़ॉल्ट नाम "टैग" फाइल बनाता है, सीपीपी, सीपीपी, .hpp, .Hpp .h फ़ाइलें रिकर्सिवली

find . -regex ".*\.[cChH]\(pp\)?" -print | etags -