2011-02-09 106 views
10

我在做Emacs的C開發。如果我有一個打開多個函數的源文件,並且「標記」處於函數調用,例如int n = get_number(arg);有沒有什麼辦法可以「跳轉到」該函數的實現?例如到int get_number(int *arg) { ... }如何在Emacs中進行C開發時跳轉到功能?

我在Eclipse中完成了一些Java開發,並且缺少了這個功能,因爲我不習慣Emacs,但我想學習。

+0

什麼是您的操作系統? – 2011-02-09 14:31:55

+0

@ ring0:這是Mac OS X. – Jonas 2011-02-09 15:34:48

回答

10

您必須創建一個標籤文件。
在Unix下,您有etags程序,該程序能夠理解C,C++,Java ...的語法,並創建Emacs可以使用的tag文件。

而是old page(2004)提供了更多信息。

跳轉到功能使用M-。 (這是Meta-Period)並鍵入函數的名稱。如果您只需按回車鍵 Emacs將跳轉到與光標所在的單詞 相匹配的函數聲明。

+0

不,它不是跳轉到聲明,而是跳到實現。 – 2014-06-22 16:18:46

3

有幾個「標籤」系統允許(有一個與emacs捆綁在一起,有GNU全局,沒有與emacs捆綁在一起,但與它集成並具有一些優勢)。與Eclipse相比,您需要構建標籤文件。

然後是語義/ EDE,它現在與emacs捆綁在一起,它應該提供一個解決方案,而不需要明確建立一個數據庫。我最近沒有嘗試過使用它。當我這樣做,它有性能問題,我發現設置是痛苦的。 (這可能是由於我正在從事一項大型工作 - 幾十萬條線 - 老一些 - 有些事情可以追溯到80年代中期 - 這個項目沒有重組它的可能性)。

+0

哇,那應該是Emacs的地方.. 我喜歡Emacs讓我們編碼的方式。非常有趣...:) – swdev 2011-03-03 06:24:21

0

我真的很喜歡cscope,但etags可能也適用。

3

我認爲語義模式應該會給你同樣的結果。儘管我還沒有嘗試跳轉到另一個文件,但在一個文件中它非常出色。轉到變量,發出擊鍵C-c,j,它將跳轉到變量的定義。回到上一行使用C-uC-空間。要顯示參考符號,使用按鍵C-C,克

這真的幫助了我。 我還沒有試過它跳轉到另一個文件,因爲我當前的項目是一個修改的Java程序,我們正在使用預處理器(一個非標準的java進程)。所以我認爲這是問題所在。

任何成功與語義模式???

謝謝