emacs — C / C ++は包含ブロックの先頭にジャンプします


10

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-modeには fortran-beginning-of-block

プロメラモードは promela-find-start-of-containing-block

回答:


14

backward-up-listデフォルトでにバインドされているを試してくださいC-M-u


1
およびCMn(転送リスト)はブロックの終わりにジャンプします
フランソワ

私はブロックの末尾に移動しようとするので、最初から最後までブロック内のジャンプを保つために、これは目的を解決しないC-M-nの最後に私を取る)関数呼び出しの。
dknight 2015

1
関連する4つのコマンドがあります。括弧ブロック全体を前後に移動するCMn(次)およびCMp(前)、および括弧のネストを1レベル上または下に移動するCMu(上)およびCMd(下)。(参照ドキュメントをので、現在のブロックの終わりに行き、あなたがCMU CMnのが必要)
rbennett485
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.