emacs - C / C ++ nhảy đến điểm bắt đầu chứa khối


10

Trong khi chỉnh sửa các tệp C hoặc C ++ trong emacs, tôi muốn có thể đi đến phần đầu của khối mã chứa . Tôi đã mong đợi tìm thấy một hàm c-start-of-block, nhưng than ôi, không có chức năng nào như vậy tồn tại (theo hiểu biết của tôi). Ví dụ: tôi có thể đang chỉnh sửa mã C xấu xí sau đây:

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

Tôi sẽ rất ngạc nhiên nếu đây không phải là một phần của emacs, tôi không thể tìm thấy nó ở bất cứ đâu ...

chế độ fortran có fortran-beginning-of-block

chế độ promela có promela-find-start-of-containing-block

Câu trả lời:


14

Hãy thử backward-up-list, ràng buộc theo mặc định C-M-u.


1
và CMn (danh sách chuyển tiếp) nhảy đến cuối khối
Francois

Để tiếp tục nhảy trong khối từ đầu đến cuối, điều này không giải quyết được mục đích bởi vì khi tôi cố gắng di chuyển đến hết khối C-M-nsẽ đưa tôi đến cuối )cuộc gọi chức năng.
biết

1
Có bốn lệnh liên quan: CMn (tiếp theo) và CMp (trước đó), đưa bạn lùi và tiến trên toàn bộ khối ngoặc đơn, và CMu (lên) và CMd (xuống) sẽ đưa bạn lên một cấp hoặc xuống lồng nhau. (xem tài liệu ) Vì vậy, để đi đến cuối khối hiện tại, bạn cần CMu CMn
rbennett485
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.