emacs - C / C ++ जिसमें ब्लॉक की शुरुआत होती है


10

Emacs में C या C ++ फ़ाइलों को संपादित करते समय, मैं कोड के युक्त ब्लॉक की शुरुआत में जाने में सक्षम होना चाहूंगा । मैं एक सी-शुरुआत-के-ब्लॉक-फ़ंक्शन को खोजने की उम्मीद कर रहा था, लेकिन अफसोस, ऐसा कोई फ़ंक्शन मौजूद नहीं है (मेरी जानकारी के लिए)। उदाहरण के लिए, मैं निम्नलिखित बदसूरत सी कोड का संपादन कर सकता हूं:

void myFunction()
{
  if (something) { //<--- I want to jump to this brace!
    // do lots of stuff
    if (stuff) {
      // stuff
    }
    // more stuff
    // ...

    // I want to put my cursor somewhere on this line <---
    // (anywhere just outside the following if) and call c-beginning-of-block
    // and jump to the brace marked above (skipping "sibling" statements)
    if (pizza_is_good) {
      // do something
      // wait, where am I?
    }
    // way more stuff
    // ...
    if (i_love_pizza) {
      // eat pizza
    }
  }
}

मुझे बहुत आश्चर्य होगा अगर यह पहले से ही emacs का हिस्सा नहीं है, मैं इसे कहीं भी नहीं पा सकता हूं ...

फोरट्रान-मोड है fortran-beginning-of-block

प्रोमिला-मोड है promela-find-start-of-containing-block

जवाबों:


14

कोशिश करो backward-up-list, डिफ़ॉल्ट रूप से बाध्य है C-M-u


1
और सीएमएन (फॉरवर्ड-लिस्ट) ब्लॉक के अंत में कूदता है
फ्रैंकोइस

शुरू से अंत तक ब्लॉक के भीतर कूदते रहने के लिए, यह उद्देश्य को हल नहीं करता है क्योंकि जब मैं ब्लॉक के अंत में जाने की कोशिश करता हूं तो मुझे फ़ंक्शन कॉल के C-M-nअंत में ले जाता है )
dknight

1
चार संबंधित कमांड हैं: सीएमएन (अगला) और सीएमपी (पिछला), जो आपको पूरे पैरेंटिसिस ब्लॉक पर पीछे और आगे की तरफ ले जाते हैं, और सीएमयू (अप) और सीएमडी (डाउन) जो आपको कोष्ठक के घोंसले के ऊपर एक स्तर ऊपर या नीचे ले जाते हैं। ( डॉक्स देखें ) तो वर्तमान ब्लॉक के अंत में जाने के लिए, आपको CMu CMn की आवश्यकता है
rbennett485
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.