我想快速移動到我的Emacs緩衝區中的一個功能。我想運行一些函數,並得到一個提示,詢問函數名稱,併爲當前緩衝區中定義的每個函數提供完成。在Emacs中,如何在當前文件中的函數之間跳轉?
我通常使用etags來瀏覽,但有時我正在尋找一個框架方法,它已被覆蓋在幾個文件中。在這些情況下,我可以找到我需要的文件,但是我想快速跳到那裏的功能。在TextMate中有一個類似的功能,您可以從編輯器右下角的列表中選擇一個定義。
我想快速移動到我的Emacs緩衝區中的一個功能。我想運行一些函數,並得到一個提示,詢問函數名稱,併爲當前緩衝區中定義的每個函數提供完成。在Emacs中,如何在當前文件中的函數之間跳轉?
我通常使用etags來瀏覽,但有時我正在尋找一個框架方法,它已被覆蓋在幾個文件中。在這些情況下,我可以找到我需要的文件,但是我想快速跳到那裏的功能。在TextMate中有一個類似的功能,您可以從編輯器右下角的列表中選擇一個定義。
只是爲了跳過當前文件中的函數?使用imenu。這是目前列出的所有替代品中最簡單最輕的一種,可能足以滿足您的需求。它也內置在Emacs中,並且具有最小的設置麻煩。它具有圖形和文本接口。任何東西額外和你會更好使用其中一個在這裏提出的其他優秀建議。
冰柱可能是更接近你在找什麼:
http://www.emacswiki.org/emacs/Icicles_-_Tags_Enhancements
這是一個增強的ETag,包括(除其他事項外)與標籤的文件名稱,以便您能告訴我們,如果它是一個你正在尋找。
嘗試CEDET。設置第一個有點困難,但這裏有一個很好的教程:by Alex ott
而且當他安裝完成後,可以使用semantic-complete-jump
。按壓標籤幾次,並且它也帶來了符號定義。
語義也與Anything很好地結合,並且'anything-c-source-semantic'源給出了一個由語義發現的所有內容的列表。 – haxney 2010-01-25 05:37:28
speedbar標準,併爲您提供當前目錄中每個文件的可摺疊菜單,默認情況下,中間點擊一個函數定義的條目跳轉到該def。隨着emacs23這改變了更正常的leftclick。
如果M-。提出錯誤的方法,你可以輸入C-u M-。找到下一個具有相同名稱的人。
您可以使用etags-select從多個匹配標籤中進行選擇。但是你問的答案是imenu。
全球gtags非常好
到當前文件或一組您選擇的文件中導航,做不需要一個標籤文件。您可以使用Imenu。但最好使用Icicles imenu命令。
爲什麼?因爲他們讓你用完成。子字符串,正則表達式,前綴或模糊完成。結合簡單模式進行匹配或減去它們。
命令icicle-imenu
在冰柱模式C-C =綁定。 Butyou還可以使用命令icicle-imenu-command
或icicle-imenu-non-interactive-function
查找命令或僅查找非命令函數(非交互式)。
這些命令多命令,這意味着它們實際上瀏覽器:您可以使用按鍵C-RET或C-鼠標2(直接跳轉)和C-降功能定義中跳閘(循環)。點擊RET或點擊mouse-2定居在最終目的地。
支持哪些語言? C族和Elisp,還有什麼? – 2010-01-26 05:35:15
我認爲大部分內置模式都可以和imenu一起使用。將imenu支持添加到某個模式也很容易。它適用於Python和Cperl模式。我用過這些。 – 2010-01-26 14:00:12
C#的作品,但請參閱http://stackoverflow.com/questions/2240320 – Cheeso 2010-05-09 11:15:18