2011-02-09 29 views
10

Tôi đang phát triển C ở Emacs. Nếu tôi có một tệp nguồn mở với nhiều hàm và "điểm đánh dấu" đang ở một cuộc gọi hàm, ví dụ: int n = get_number(arg); là có cách nào tôi có thể "nhảy đến" việc thực hiện chức năng đó? ví dụ. đến int get_number(int *arg) { ... }Làm cách nào để chuyển sang chức năng khi thực hiện phát triển C trong Emac?

Tôi đã thực hiện một số phát triển Java trong Eclipse và thiếu tính năng này, bởi vì tôi không quen với Emacs nhưng tôi muốn tìm hiểu.

+0

HĐH của bạn là gì? –

+0

@ ring0: Đó là Mac OS X. – Jonas

Trả lời

10

Bạn phải tạo một tệp thẻ.
Dưới Unix, bạn có chương trình etags hiểu cú pháp của C, C++, Java ... và tạo tệp tag có thể được sử dụng bởi Emacs.

Điều này thay vì old page (2004) cung cấp thêm thông tin.

Để chuyển sang sử dụng chức năng M-. (đó là Meta-Period) và nhập tên của hàm. Nếu bạn chỉ cần nhấn Enter Emacs sẽ chuyển đến khai báo hàm phù hợp với từ dưới con trỏ.

+0

Không, đó là nhảy không phải là một tuyên bố, nhưng để thực hiện một. –

3

Có một số hệ thống "thẻ" cho phép (có một gói kèm với emacs, có GNU toàn cục không được tích hợp với emacs nhưng tích hợp tốt với nó và có một số ưu điểm). So với Eclipse, bạn sẽ cần phải xây dựng tệp thẻ.

Sau đó, có ngữ nghĩa/EDE mà bây giờ đi kèm với các emacs sẽ cung cấp một giải pháp mà không cần phải xây dựng một cơ sở dữ liệu một cách rõ ràng. Tôi đã không cố gắng sử dụng nó gần đây. Khi tôi đã làm, nó có vấn đề hiệu suất và tôi thấy việc thiết lập là đau đớn. (Cả hai có thể do thực tế là tôi đang làm việc trên một số lớn - hàng chục triệu hàng triệu - và cũ - một số thứ có từ thời điểm giữa thập niên 80 - dự án mà không có khả năng tổ chức lại nó).

+0

wow, đó phải là một nơi dành cho Emacs .. Tôi thích cách Emacs cho phép chúng tôi viết mã. Rất hấp dẫn ...:) – swdev

0

Tôi thực sự thích cscope vì điều này, nhưng etags có thể hoạt động tốt.

3

Tôi nghĩ rằng chế độ ngữ nghĩa sẽ làm bạn cùng một kết quả. Mặc dù tôi chưa thử chuyển sang một tệp khác, nhưng trong một tệp, nó rất tuyệt vời. Chuyển đến biến số, phát hành phím tắt C-c,j, nó sẽ chuyển sang định nghĩa biến. Quay lại dòng trước bằng cách sử dụng C-uC-space. Để hiển thị tham chiếu đến các biểu tượng, sử dụng tổ hợp phím C-c,g

Nó thực sự giúp tôi. Tôi chưa thử chuyển sang một tệp khác, vì dự án hiện tại của tôi là một chương trình Java đã sửa đổi, nơi chúng tôi đang sử dụng bộ tiền xử lý (một quá trình java không chuẩn). Vì vậy, tôi nghĩ rằng đó là nơi mà vấn đề nằm.

Bất kỳ thành công nào với chế độ ngữ nghĩa ???

cảm ơn

+0

Nó không thành công với một biểu tượng địa phương, nhưng vẫn hữu ích. –

Các vấn đề liên quan