web-dev-qa-db-ja.com

emacs-C / C ++はブロックを含む先頭にジャンプします

EmacsでCまたはC++ファイルを編集しているときに、コードの含むブロックの先頭に移動できるようにしたいと思います。私はc-beginning-of-block関数を見つけることを期待していましたが、残念ながら、そのような関数は存在しません(私の知る限り)。たとえば、次の醜い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モードにはfortran-beginning-of-block

promela-modeにはpromela-find-start-of-containing-block

10
mgalgs

backward-up-listを試してください。デフォルトでは、 C-M-u

14
scottfrazer