emacs - C / C ++ içeren bloğun başına atla


10

Emacs C veya C ++ dosyaları düzenlerken, içeren kod bloğunun başına gitmek istiyorum . Bir c-baş-blok işlevi bulmayı bekliyordum, ama ne yazık ki, böyle bir işlev yok (bilgime göre). Örneğin, aşağıdaki çirkin C kodunu düzenliyor olabilirim:

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

Bu zaten emacs parçası değilse çok şaşırırdım, sadece hiçbir yerde bulamıyorum ...

fortran modu var fortran-beginning-of-block

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

Yanıtlar:


14

backward-up-listVarsayılan olarak sınırlamayı deneyin C-M-u.


1
ve CMn (ileri liste) bloğun sonuna atlıyor
Francois

Blok içinde baştan sona zıplamaya devam etmek için bu amaç çözülmez çünkü bloğun sonuna gitmeye çalıştığımda C-M-nbeni )bir işlev çağrısının sonuna götürür .
dknight

1
İlgili dört komut vardır: sizi tüm parantez blokları üzerinde ileri ve geri götüren CMn (sonraki) ve CMp (önceki) ve parantez yuvalamasında bir seviye yukarı veya aşağı götüren CMu (yukarı) ve CMd (aşağı). (bkz docs Yani geçerli bloğun sonuna gitmek için), sen CMU CMN gerek
rbennett485
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.