2011-01-21 11 views
23

दृश्य स्टूडियो में सी/सी ++ कोड संपादित करते समय फ़ंक्शन या चर की घोषणा करने के लिए F12 बटन को धक्का देना आसान है।Emacs में घोषणा के लिए कूदने के लिए शॉर्ट-कट कुंजी क्या है?

क्या ऐसा करने के लिए emacs में एक छोटी-छोटी कुंजी है?

+0

प्रश्न बहुत व्यापक है, आईएमओ। उत्तर इमेनु से विभिन्न टैग कमांड तक और आगे की तीसरी पार्टी सुविधाओं के किसी भी नंबर पर हैं। मैं Emacs मैनुअल के साथ शुरू कहूंगा ... – Drew

उत्तर

23

ठीक है, यह उससे थोड़ा अधिक शामिल है।

डिफ़ॉल्ट रूप से, Emacs सी या सी ++ कोड के लिए फ़ंक्शन घोषणाओं के बारे में "नहीं जानते" हैं। सबसे पहले, Exuberant Ctags प्राप्त करें। फिर, अपने स्रोत कोड पर कमांड etags (Emacs के लिए ctags) का उपयोग करें। TAGS नाम की एक फ़ाइल जेनरेट की जाएगी।

फिर, अपने स्रोत कोड को संपादित करते समय, जब आप एक घोषणा पर कूदना चाहते हैं, तो एम- दबाएं। (मेटा और डॉट, या आधुनिक कीबोर्ड पर alt और dot)। सबसे पहले, Emacs आपको आपकी टैग फ़ाइल के स्थान के लिए पूछेगा। इसे आपके द्वारा जेनरेट किए गए को इंगित करें और बाद में नेविगेशन स्वचालित हो जाएगा।

मैं इस कार्यक्षमता की बेहतर समझ के लिए Emacswiki article about tags पढ़ने का सुझाव देना चाहता हूं।

Emacs का नवीनतम संस्करण (23.2) CEDET एकीकृत है, जिसमें सी और सी ++ नेविगेशन के लिए और अधिक उन्नत सुविधाएं हैं, लेकिन यह सही सेट अप करना थोड़ा मुश्किल हो सकता है, इसलिए यदि आप रुचि रखते हैं तो इसके बारे में और पढ़ें ।

+0

Emacs इसकी घोषणा के बजाए फ़ंक्शन (इसके कार्यान्वयन) की परिभाषा पर कैसे कूदें (यह आमतौर पर हेडर फ़ाइल में प्रोटोटाइप है)? मैं ctags -R -e -c-type = cdefglmnpstuvx' के साथ ctags भाग गया। –

4

ऐसा करने के कई तरीके हैं। जैसा कि दारु ने उल्लेख किया है, सीटीएजी एक है, लेकिन यह डिफ़ॉल्ट रूप से परिभाषा पर जाता है (जो आपके लिए काम कर सकता है)। आगे देखकर, आप देख सकते हैं कि उपसर्ग M-. (यानी, C-u M-.) आपको अगले टैग मैच (जो प्रायः घोषणा है) पर ले जाएगा। --declarations विकल्प भी है, लेकिन एक्सबेरेंट सीटैग इसका समर्थन नहीं कर रहा है।

CEDET एक और विकल्प है, लेकिन मेरे अनुभव में, यह अभी भी उत्पादन के लिए तैयार नहीं है। सी ++ semantic-ia-fast-jump में अक्सर बार परिभाषा या घोषणा के बजाय घोषणाओं पर आगे बढ़ेगा।

+0

धन्यवाद (सी-यू एम-।) –

2

एम-। कुंजी आपको फ़ंक्शन परिभाषा emacs पर ले जाएगा।

+0

मुझे यह सही जवाब होना चाहिए, मैंने गलती से आदेश भी खोजा :) :) –

7

जैसा कि अन्य ने कहा है कि इमैक में इसके लिए कोई अंतर्निहित सार्वभौमिक समाधान नहीं है। उस ने कहा, IntelliJ में इस कार्यक्षमता के बाद मैं इसे emacs में भी चाहता था इसलिए मैंने Dumb Jump बनाया।

अभी Dumb Jump है बुनियादी समर्थन के लिए:

  • जावास्क्रिप्ट
  • Emacs लिस्प
  • अजगर
  • जाओ
  • पीएचपी
  • रूबी
  • Faust
  • और अधिक ... (20 से अधिक अब)

यह MELPA के माध्यम से उपलब्ध है और सक्रिय रूप से विकसित किया जा रहा है।

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