2011-05-31 5 views
12

मैं विम के साथ एक बड़ी परियोजना के लिए सीएससीओपी का उपयोग कर रहा हूं, लेकिन बिना विम मैपिंग के (वे कुछ अजीब कारणों के लिए vim froze)। मैं vim के भीतर सेस्कोप कमांड का उपयोग कर रहा हूं, और मैं पूरे कोड में संरचना सदस्यों के उपयोग ढूंढने में सक्षम होना चाहता हूं।स्ट्रॉस सदस्य कोस्कोप के साथ उपयोग कैसे करें और स्थानीय चर को अनदेखा करें?

मान लीजिए मैं कुछ इस तरह है: यदि मैं आदेश जारी

1 typedef struct _s{ 
    2  
    3  int x; 
    4 } S; 
    5 
    6 int main(){ 
    7 
    8  int x = 1; 
    9 
10  S my_s; 
11 
12  my_s.x = 5; 
13 
14  return my_s.x; 
15 } 

'सीएस च रों एक्स' यह दोनों एस के सदस्य चर और स्थानीय मुख्य चर वापस आ जाएगी। क्या कोई तरीका है कि मैं केवल एस के सदस्य चर की घटनाओं को पा सकता हूं?

+0

की परिभाषा को खोजने के लिए cscope का उपयोग करेगा। क्या आप ".x" के लिए टेक्स्ट खोज नहीं कर सकते हैं? –

उत्तर

4

मुझे नहीं लगता कि स्थानीय चर एक्स और संरचना सदस्य चर के बीच अंतर को अलग करने के लिए कोई रास्ता नहीं है।

जिस तरह से हम का समाधान मेरी कंपनी में इस समस्या यह है कि उन्हें अलग करने में मदद करता सदस्य चर के लिए एक अनूठा नामकरण योजना का उपयोग करना है:

typedef struct _s{  
    int s_x; 
} S; 

यह पहली बार एक छोटा सा अजीब है, लेकिन एक बार आप आदत हो यह, यह कोड नेविगेट करना आसान बनाता है। आम तौर पर यूनिकिफायर संरचना के लिए प्रासंगिक कुछ वर्ण हैं, और यह चीजों को बहुत बुरी तरह खराब नहीं करता है।

+0

उत्तर के लिए धन्यवाद। यह मेरे मामले में काम नहीं करेगा क्योंकि मुझे अभी एक बड़ा कोड बेस मिला है जहां वे इस दिशानिर्देश का पालन नहीं करते हैं। हालांकि, मैं इसे ध्यान में रखूंगा। मैंने पूछा क्योंकि ग्रहण और वीएस जैसे कई आईडीई ऐसा कर सकते हैं। जाहिर है कि विम एक आईडीई नहीं है, लेकिन मुझे आश्चर्य हुआ कि क्या यह उस कार्यक्षमता में थोड़ा सा पहुंच सकता है। –

+0

यह दुर्भाग्यपूर्ण है। यदि आपको ऐसा करने का कोई तरीका मिल गया है, तो मुझे यह सुनना अच्छा लगेगा! –

0

एक्स की खोज करने के बजाय, आप अपने कर्सर को संरचना चर "my_s" पर रख सकते हैं और फिर कुंजी संयोजन "gd" दबा सकते हैं। यह आपको my_s की परिभाषा पर रखेगा और फिर एस

+0

मुझे डर है कि प्रश्न पढ़ता है ... संरचना सदस्य उपयोग करता है ... ', परिभाषा नहीं? – sehe

+1

हां, मैं कोड के दौरान सदस्य चर 'x' के सभी उपयोगों को प्राप्त करने का प्रयास कर रहा था, जहां इसे परिभाषित नहीं किया गया था। –

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