Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

While editing C or C++ files in emacs, I'd like to be able to go to the beginning of the containing block of code. I was expecting to find a c-beginning-of-block function, but alas, no such function exists (to my knowledge). For example, I might be editing the following ugly C code:

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
    }
  }
}

I would be very surprised if this isn't already part of emacs, I just can't find it anywhere...

fortran-mode has fortran-beginning-of-block

promela-mode has promela-find-start-of-containing-block

share|improve this question

1 Answer 1

up vote 6 down vote accepted

Try backward-up-list, bound by default to C-M-u.

share|improve this answer
    
That's it! Thanks! –  mgalgs Mar 23 '11 at 0:10
1  
and C-M-n (forward-list) jumps to the end of block –  Francois Jun 25 '12 at 16:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.